home *** CD-ROM | disk | FTP | other *** search
/ CD Exchange / CD Exchange - Volume 1.iso / graphics / utils / videotracker / develop / sourceaga / coppermagnify.s < prev    next >
Text File  |  1994-02-10  |  76KB  |  3,134 lines

  1.  
  2. ;rout            ;when this is off, the routine-file will be
  3.             ;assembled, on=testing
  4.             
  5. ;debug            ;when this is on, colors in the background will
  6.             ;show how much time the routine needs.
  7.  
  8. ;ntsctest        ;when this is on, the routineplayer is in ntsc-mode
  9.  
  10. ;ocs            ;off=AGA,on=OCS testing not possible on OCS !
  11.  
  12. routinemode    equ    16    ;the routinemode !
  13.  
  14.  
  15. ; VideoTracker AGA developer source 25-12-93
  16. ; 24-bits colors, Super-HiRes, HAM8, maximum burstmode (64 pixels aligned)
  17. ; wich makes low-resolution overscan a bit ugly.
  18. ; no "interactive" support anymore, it's only used by Kick 1.3 users.
  19.  
  20. ; the first part of the source handles the things that are necessary to
  21. ; show the picture/copper and playing of the routine.
  22. ; the part between the "***" lines is the routine-source.
  23. ; at the bottom of the file, there are the necessary incbin-files who
  24. ; are needed to test the routine.
  25. ; these are saved with "save effect" in videotracker. they are raw
  26. ; data files which can be fonts,pictures,landscapes,vectorobjects
  27. ; etcetra.
  28. ; the incbin-files are put in the "variables" table, in the routine-
  29. ; player-handler
  30. ; the place where it's done can be found by searching for "!!!"
  31.  
  32.     opt    a+    ;devpac 3 optimize
  33.     opt    o+
  34.  
  35. vew_wid    equ    48
  36. vew_hgt    equ    290
  37. win_hgt    equ    117
  38. win_str    equ    $1a
  39.  
  40.         ifd    ocs
  41. pic_wid        equ    4        ;wide in bytes
  42. pic_hgt        equ    6        ;hoogte
  43. pic_dpt        equ    8        ;number planes
  44. pic_ani        equ    10        ;aantal effes (anim)
  45. pic_vew        equ    12        ;viewmode
  46. pic_cycstr    equ    14        ;cycle start (*4)
  47. pic_cycend    equ    15        ;cycle end (*4)
  48. pic_cycspd    equ    16        ;cycle speed (*4)
  49. pic_cycadd    equ    17        ;cycle add (*4)
  50. pic_palnum    equ    30        ;aantal kleuren
  51. pic_pal        equ    32        ;palette start
  52. pic_palsiz    equ    256*2        ;vaste palette size
  53. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  54.         endc
  55.         
  56.         ifnd    ocs
  57. pic_wid        equ    4        ;wide in bytes
  58. pic_hgt        equ    6        ;hoogte
  59. pic_dpt        equ    8        ;number planes
  60. pic_ani        equ    10        ;aantal effes (anim)
  61. pic_vew        equ    12        ;viewmode
  62. pic_cycstr    equ    14        ;cycle start (*8)
  63. pic_cycend    equ    15        ;cycle end (*8)
  64. pic_cycspd    equ    16        ;cycle speed (*8)
  65. pic_cycadd    equ    17        ;cycle add (*8)
  66. pic_widmod    equ    46        ;animation-width modulo
  67. pic_future    equ    50        ;free future space
  68. pic_palnum    equ    62        ;aantal kleuren
  69. pic_pal        equ    64        ;palette start
  70. pic_palsiz    equ    256*4        ;vaste palette size (longwords)
  71. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  72.         endc
  73.         
  74. var_len        equ    $300        ;lengte vartabel
  75.  
  76. var__GfxBase    equ    $000        ;graphics lib
  77. var_pic1    equ    $004        ;current picture
  78. var_anispd1    equ    $008        ;animspeed
  79. var_anitel1    equ    $00c        ;animcount
  80. var_cprbck    equ    $010        ;copperback
  81. var_bck        equ    $014        ;background
  82. var_pic2    equ    $018        ;current picture
  83. var_ntsc    equ    $01c        ;ntsc/pal frequence
  84. var_lnd        equ    $020        ;landscape
  85. var_anilop1    equ    $024
  86. var_rottrg    equ    $028        ;effect trigger
  87. var_txt1    equ    $040        ;text
  88. var_txt16    equ    15*4+var_txt1
  89. var_vec1    equ    $080        ;vectors
  90. var_vec16    equ    15*4+var_vec1
  91. var_fon1    equ    $0c0        ;fonts
  92. var_fon16    equ    15*4+var_fon1
  93. var_cols1    equ    $100        ;colorsets
  94. var_cols16    equ    15*4+var_cols1
  95. var_obj1    equ    $180        ;objects
  96. var_obj16    equ    15*4+var_obj1
  97.  
  98.     ifd    rout
  99.     ;videotracker routine-test
  100.  
  101.     incdir    "videotracker:include/"
  102.     include    "exec/types.i"
  103.     include    "graphics/gfxbase.i"
  104.     include    "lvo/graphics_lib.i"
  105.     incdir    'videotracker:effect/'
  106.  
  107.     SECTION    1,CODE_C
  108. tus
  109.     lea    var,a0
  110.     move.l    #rotsrc,curpic1        ;picture !!!
  111.     move.l    #rotsrc,curpal1        ;palette !!!
  112. ;    move.l    #rotset,var_cols1(a0)    ;colorset !!!
  113.  
  114.     bsr    paltabres
  115.  
  116.     move.l    ($4).w,a6
  117.     sub.l    a1,a1
  118.     jsr    -$126(a6)        ;findtask
  119.     move.l    d0,curtsk
  120.     move.l    d0,a0
  121.     move.l    $b8(a0),tskpri
  122.  
  123.     lea    dosnam,a1        ;doslib openen
  124.     moveq.l    #0,d0
  125.     move.l    (4).w,a6
  126.     jsr    -408(a6)        ;openlib
  127.     move.l    d0,doslib
  128.  
  129.     bsr.s    label5            ;videotracker opstarten
  130.     
  131.     move.l    curtsk,a0
  132.     move.l    tskpri,$b8(a0)
  133.     move.l    ($4).w,a6
  134.     jsr    -$84(a6)        ;forbid
  135.  
  136.     move.l    doslib,a1
  137.     move.l    (4).w,a6
  138.     jsr    -414(a6)        ;closelib
  139.  
  140.     moveq.l    #0,d0
  141.     rts
  142.     
  143. label5
  144.     move.l    (4).w,a6        ;workbench gedoe
  145.  
  146.     move.b    530(a6),ntscmode    ;50/60 hertz halen
  147.  
  148.     ifd    ntsctest
  149.     move.b    #60,ntscmode        ;60 hertz (ntsc)
  150.     endc
  151.  
  152.     cmp.b    #50,ntscmode        ;ntsc ?
  153.     beq.s    str.ntsc
  154.     move.l    #vew_hgt-56,hogscr    ;set NTSC screen hight
  155. str.ntsc
  156.  
  157.     lea    cprjmp,a2        ;copjmp zetten !
  158.     move.l    #cprbck-8,d0
  159.     move.w    d0,6(a2)
  160.     swap    d0
  161.     move.w    d0,2(a2)
  162.  
  163.     lea    cprbck-8,a2        ;copstr zetten !
  164.     move.l    #cpr,d0
  165.     move.w    d0,6(a2)
  166.     swap    d0
  167.     move.w    d0,2(a2)
  168.  
  169.     bsr    cprsprrem        ;sprites legen
  170.  
  171.     lea    gfxnam,a1        ;graphics lib openen
  172.     move.l    (4).w,a6
  173.     jsr    -408(a6)        ;openlib
  174.     move.l    d0,a6
  175.     move.l    d0,gfxlib
  176.     move.l    38(a6),oldcprlist
  177.  
  178.     bset    #1,$bfe001
  179.     bsr    copbuf            ;copper vullen
  180.  
  181.     bsr    sysoff
  182.  
  183. gadrun
  184.     btst    #6,($bfe001).l
  185.     bne    gadrun
  186.  
  187. scrend
  188. scrend.play
  189.     bsr    syson
  190.  
  191.     move.l    gfxlib,a1
  192.     move.l    (4).w,a6
  193.     jsr    -414(a6)        ;closelib
  194.  
  195. scrend.qb
  196.     moveq.l    #0,d0    
  197.     rts
  198.     
  199.     ;vertical blank interrupt, no blits.
  200.     ;handles counters,interlace,sprite
  201.     ;level 3
  202.  
  203. intvb
  204.     bra.s    intvb.cnt
  205.     dc.l    'VIDU'
  206.     dc.l    'LOOP'
  207. intvb.cnt
  208.     movem.l    d0-d7/a0-a6,-(sp)
  209.     lea    ($dff000).l,a6
  210.  
  211.     move.w    $01e(a6),d0
  212.     btst    #5,d0            ;vblank ?
  213.     bne.s    intvb.vb
  214.  
  215.     bra.s    intcop.end
  216.  
  217. intvb.vb
  218.     bsr    grap
  219.     bsr    palctr            ;palette zetten
  220.     bsr.s    copbuf            ;copper vullen
  221.     
  222. intvb.end
  223.     move.w    #$0020,$09c(a6)    ;vb bit wissen
  224.     movem.l    (sp)+,d0-d7/a0-a6    ;multitask uit, shit !
  225.     rte
  226.  
  227. intcop.end
  228.     movem.l    (sp)+,d0-d7/a0-a6
  229.     move.l    intvbold,-(sp)
  230.     rts
  231.  
  232.     ;transmission buffer empty routine, BLIT !
  233.     ;handles routines,animations
  234.     
  235. inttbe                    ;tbe interrupt
  236.     movem.l    d0-d7/a0-a6,-(sp)
  237.     lea    ($dff000).l,a6
  238.  
  239.     move.w    $01e(a6),d0
  240.     btst    #0,d0            ;no tbe ?
  241.     beq.s    intdskblk
  242.  
  243.  
  244.     btst    #6,($bfe001).l        ;muis ingedrukt ?
  245.     beq.s    inttbe.cop
  246.     btst    #2,($dff016).l
  247.     beq.s    inttbe.cop
  248.  
  249.     ifd    debug
  250.     move.w    #$700,$dff180
  251.     endc
  252.     
  253.     bsr    rotply            ;routineplayer BLIT !
  254.     bsr.s    copbuf            ;copper vullen
  255.  
  256.     ifd    debug
  257.     move.w    #$070,$dff180
  258.     endc
  259.     
  260. inttbe.cop
  261.  
  262. inttbe.end
  263.     move.w    #$0001,$09c(a6)
  264.     movem.l    (sp)+,d0-d7/a0-a6
  265.     rte
  266.  
  267. intdskblk
  268.     move.w    #$0001,$09c(a6)        ;be sure for no tbe handling
  269.     movem.l    (sp)+,d0-d7/a0-a6
  270.     move.l    inttbeold,-(sp)
  271.     rts
  272.  
  273.  
  274.     ;moves the copperbuffer to the copperlist
  275.     ;sort of double buffering
  276.     
  277. copbuf
  278.     movem.l    d0-d7/a0-a6,-(sp)
  279.  
  280.     lea    ($dff000).l,a6
  281.  
  282. copbuf.novb                ;copperchange overslaan
  283.     moveq.l    #0,d0
  284.     move.b    $005(a6),d0
  285.     lsl.w    #8,d0
  286.     moveq.l    #0,d1
  287.     move.b    $006(a6),d1
  288.     add.w    d1,d0
  289.  
  290.     cmp.w    #$4,d0            ;lower limit, all stations 100%
  291.     blt    copbuf.novb
  292.  
  293.     cmp.b    #50,ntscmode
  294.     beq.s    copbuf.pal
  295.     cmp.w    #$133-72-8,d0        ;ntsc grens
  296.     bge    copbuf.novb
  297.     bra.s    copbuf.cont
  298. copbuf.pal
  299.     cmp.w    #$133-8,d0        ;pal grens
  300.     bge    copbuf.novb
  301. copbuf.cont
  302.  
  303.     lea    gra.s,a0        ;buffer copieren
  304.     lea    cprbuf,a1
  305. copbuf_aga                ;AGA stuff :)
  306.     move.l    #(gra.ql)/4-1,d0
  307. copbuf.a
  308.     move.w    2(a0),2(a1)
  309.     add.l    #4,a0
  310.     add.l    #4,a1
  311.     dbra    d0,copbuf.a
  312.  
  313. copbuf.end
  314.     movem.l    (sp)+,d0-d7/a0-a6
  315.     rts
  316.  
  317.     ;goes back to the workbench
  318.     
  319. syson
  320.     movem.l    d0-d7/a0-a6,-(sp)
  321.  
  322.     move.w    #$0001,$dff09a        ;tbeint uit
  323.     move.l    intvbold,($6c).w
  324.     move.l    inttbeold,($64).w
  325.  
  326.     move.l    4,a6
  327.     jsr    -138(a6)        ;permit
  328.  
  329.     move.l    gfxlib,a6
  330.     jsr    -462(a6)        ;disownblitter
  331.  
  332.     move.l    wbview,a1
  333.     move.l    gfxlib,a6
  334.     jsr    _LVOLoadView(a6)     ; Fix view
  335.     jsr    _LVOWaitTOF(a6)
  336.     jsr    _LVOWaitTOF(a6)         ; wait for LoadView()
  337.  
  338. syson.ras
  339.     cmp.b    #$c0,$dff006        ;prevent copperjump
  340.     bne    syson.ras
  341.  
  342.     move.l    gfxlib,a6
  343.     move.l    gb_copinit(a6),$dff080     ; Kick it into life
  344.  
  345.     movem.l    (sp)+,d0-d7/a0-a6
  346.     rts
  347.     
  348.     ;goes back to the gadgetscreen
  349.     
  350. sysoff
  351.     movem.l    d0-d7/a0-a6,-(sp)
  352.      
  353.     move.l    gfxlib,a6
  354.     move.l    gb_ActiView(a6),wbview    ;current view
  355.     sub.l    a1,a1            ; clear a1
  356.     jsr     _LVOLoadView(a6)     ; Flush View to nothing
  357.     jsr    _LVOWaitTOF(a6)     ; Wait once
  358.     jsr    _LVOWaitTOF(a6)     ; Wait again.
  359.  
  360.     move.l    gfxlib,a6
  361.     jsr    -456(a6)        ;ownblitter
  362.  
  363.     move.l    4,a6
  364.     jsr    -132(a6)        ;forbid
  365.         
  366.     move.l    ($6c).w,intvbold
  367.     move.l    #intvb,($6c).w
  368.     move.l    ($64).w,inttbeold
  369.     move.l    #inttbe,($64).w
  370.     move.w    #$8001,$dff09a        ;tbeint aan
  371.     bsr    gracpr            ;reset copper
  372.     bsr    copbuf            ;copy copper
  373.     move.l    #cpr,$dff080
  374.  
  375.     movem.l    (sp)+,d0-d7/a0-a6
  376.     rts
  377.     
  378. cprsprrem
  379.     movem.l    d0-d7/a0-a6,-(sp)
  380.     lea    cprspr,a0
  381.     move.l    #sprdat,d0
  382.     move.w    #7,d1
  383. cprsprrem.a
  384.     move.w    d0,3*2(a0)
  385.     swap    d0
  386.     move.w    d0,1*2(a0)
  387.     swap    d0
  388.     add.l    #8,a0
  389.     dbra    d1,cprsprrem.a
  390.     movem.l    (sp)+,d0-d7/a0-a6
  391.     rts
  392.  
  393. varset                    ;variablen neerzetten
  394.     movem.l    d0-d7/a0-a6,-(sp)
  395.     move.l    #var,a0
  396.  
  397.     move.l    #cprbck,var_cprbck(a0)
  398.     move.l    gfxlib,var__GfxBase(a0)
  399.     move.b    ntscmode,var_ntsc(a0)
  400.  
  401.     move.l    curpic1,var_pic1(a0)    ;variabel
  402.     move.l    curpic2,var_pic2(a0)    ;variabel
  403.     move.w    anispd1,var_anispd1(a0)
  404.     move.w    anitel1,var_anitel1(a0)
  405.     move.b    anilop1,var_anilop1(a0)
  406.     move.l    #rottrg,var_rottrg(a0)
  407.     movem.l    (sp)+,d0-d7/a0-a6
  408.     rts
  409.     
  410.     ;this routine handles all videotracker-routines
  411.  
  412. rotply    
  413.     movem.l    d0-d7/a0-a6,-(sp)
  414.  
  415.     moveq.l    #0,d0
  416.  
  417.     lea    currot1,a2        ;routine 1
  418.     move.w    rotinf1,d0        ;routine info
  419.     bsr.s    rotplyr
  420.  
  421. rotply.end
  422.     movem.l    (sp)+,d0-d7/a0-a6
  423.     rts
  424.  
  425.     ;this routine handles 1 routine, BLIT !
  426.     
  427. rotplyr
  428.     movem.l    d0-d7/a1-a6,-(sp)
  429.  
  430.     move.l    #rot,(a2)        ;routinestart address
  431.  
  432. ;    move.b    #50,ntscmode        ;ntsc/pal hz
  433.     clr.l    curpic2            ;background picture
  434.     move.w    #1,anispd1        ;animationspeed
  435.     clr.w    anitel1            ;animation position
  436.  
  437.     lea    var,a0            ;communication-table
  438.  
  439.     move.b    #0,anilop1        ;animloop off/on !!!
  440.     move.w    #32,anispd1        ;animdelay !!!
  441.     move.l    #routinemode,d0        ;routinemode !!!
  442.  
  443.     sub.l    a0,a0            ;picture info legen
  444.  
  445.     tst.l    (a2)            ;is er een routine ?
  446.     beq    rotplyr.end        ;interlace handling
  447.  
  448.     move.l    intdel,d2        ;delay
  449.     move.l    inttel,d1        ;teller
  450.     cmp.w    d2,d1
  451.     blt    rotplyr.end
  452.     clr.l    inttel
  453.                 
  454.     bsr    varset            ;variabelen updaten
  455.  
  456.     move.l    (a2),a1            ;routine halen
  457.     move.l    #var,a0            ;variablen tabel
  458.  
  459.     movem.l    d3-d7/a1-a6,-(sp)
  460.     moveq.l    #0,d1            ;vars wissen
  461.     moveq.l    #0,d2
  462.     moveq.l    #0,d3
  463.     moveq.l    #0,d4
  464.     moveq.l    #0,d5
  465.     moveq.l    #0,d6
  466.     moveq.l    #0,d7
  467.     sub.l    a2,a2
  468.     sub.l    a3,a3
  469.     sub.l    a4,a4
  470.     sub.l    a5,a5
  471.  
  472.     jsr    4(a1)            ;routine afwerken
  473.     movem.l    (sp)+,d3-d7/a1-a6
  474.  
  475.     ;Routine:
  476.     ;
  477.     ;Input:
  478.     ;a0=variabelentabel
  479.     ;d0=routinemode
  480.     ;
  481.     ;Output:
  482.     ;a0=picture
  483.     ;d1=copperlist
  484.     ;d2=interruptdelay        (NOT used till now)
  485.     
  486.     move.w    #$0020,$dff09a        ;vb off !
  487.  
  488.     move.l    d2,intdel        ;delay
  489.  
  490.     lea    cprjmp,a3
  491.     move.l    #cprbck-8,d0
  492.  
  493.     cmp.l    (a2),a1            ;routine ondertussen gewipt ?
  494.     bne.s    rotplyr.nocop
  495.     tst.l    d1            ;copperlist ?
  496.     beq.s    rotplyr.nocop
  497.     move.l    d1,d0
  498. rotplyr.nocop
  499.     move.w    d0,6(a3)
  500.     swap    d0
  501.     move.w    d0,2(a3)
  502.  
  503.     cmp.l    #0,a0            ;picture ?
  504.     beq.s    rotplyr.endvb
  505.  
  506.     move.l    a0,curpic1        ;current picture (cycle)
  507.     move.l    a0,curpal1        ;current palette
  508.  
  509.     tst.b    rotdpl            ;plane is geleverd
  510.     beq.s    rotplyr.set
  511.     clr.b    rotdpl
  512.     clr.l    cycdel1            ;cycle info wissen
  513.     clr.l    4+cycdel1
  514.     clr.l    curfrm1            ;curfrm1, altijd planes zetten
  515. rotplyr.set
  516.     clr.b    dplctr
  517.     bsr.s    grap
  518.     bsr    grac            ;colorset
  519. rotplyr.endvb
  520.     move.w    #$8020,$dff09a
  521. rotplyr.end
  522.     movem.l    (sp)+,d0-d7/a1-a6
  523.     rts
  524.  
  525.     ;removes possible routine-coppers
  526.     
  527. gracpr
  528.     movem.l    d0-d7/a0-a6,-(sp)
  529.     lea    cprjmp,a3
  530.     move.l    #cprbck-8,d0        ;copperlist resetten
  531.     move.w    d0,6(a3)
  532.     swap    d0
  533.     move.w    d0,2(a3)
  534.     movem.l    (sp)+,d0-d7/a0-a6
  535.     rts
  536.  
  537. grap                    ;d7=anim
  538.     movem.l    d0-d7/a0-a6,-(sp)
  539.  
  540.     clr.l    d7
  541.  
  542.     tst.l    curpic1            ;current picture ?
  543.     beq    grap.end
  544.  
  545.     move.l    curpic1,a2        ;normal pic halen
  546.  
  547.     lea    gracprscr,a1        ;window neerzetten
  548.     move.l    hogscr,d1
  549.  
  550.     move.w    pic_hgt(a2),d3        ;pic hoogte
  551.     move.w    pic_vew(a2),d5
  552.     btst    #2,d5            ;interlace ?
  553.     beq.s    grap.nohi4
  554.     lsr.w    #1,d3            ;/2
  555. grap.nohi4
  556.     cmp.w    d3,d1
  557.     bge.s    grap.hog
  558.     move.w    d1,d3
  559. grap.hog
  560.     sub.w    d3,d1
  561.     lsr.w    #1,d1
  562.     add.w    #win_str,d1
  563.     move.w    d1,d2
  564.     add.w    d3,d2
  565.  
  566.     move.b    d1,2(a1)        ;y start
  567.     move.b    d2,6(a1)        ;y end
  568.  
  569.     move.w    pic_wid(a2),d4        ;pic breedte in bytes
  570.     lsl.l    #3,d4
  571.  
  572.     move.l    #vew_wid*8,d0
  573.     move.l    #0,d1
  574.     move.l    #$61,d6
  575.  
  576.     cmp.w    #40,pic_wid(a2)        ;overscan ?
  577.     ble.s    grap.noov1
  578.     move.l    #$41,d6
  579. grap.noov1
  580.  
  581.     move.w    pic_vew(a2),d5
  582.     btst    #15,d5            ;hires ?
  583.     beq.s    grap.nohi2
  584.  
  585.     move.l    #(vew_wid)*8*2,d0
  586.     move.l    #1,d1
  587.     move.l    #$61,d6
  588.  
  589.     cmp.w    #80,pic_wid(a2)        ;overscan ?
  590.     ble.s    grap.nohi2
  591.     move.l    #(vew_wid)*8*2,d0
  592.     move.l    #$51,d6
  593.  
  594.     bra.s    grap.noshi2
  595. grap.nohi2    
  596.     btst    #6,d5            ;super hires ?
  597.     beq.s    grap.noshi2
  598.  
  599.     move.l    #(vew_wid)*8*4,d0
  600.     move.l    #2,d1
  601.     move.l    #$61,d6
  602.  
  603.     cmp.w    #80*2,pic_wid(a2)    ;overscan ?
  604.     ble.s    grap.noshi2
  605.     move.l    #(vew_wid)*8*4,d0
  606.     move.l    #$51,d6
  607.  
  608. grap.noshi2    
  609.  
  610.     clr.w    d5
  611.     cmp.w    d0,d4            ;breeder dan scherm ?
  612.     ble.s    grap.c
  613.     move.w    d4,d5
  614.     move.w    d0,d4
  615.     sub.w    d0,d5            ;modulo
  616.     lsr.w    #3,d5            ;/8
  617. grap.c
  618.     lsr.w    d1,d0
  619.     lsr.w    d1,d4
  620.  
  621.     move.w    d0,d2
  622.     sub.w    d4,d2
  623.     lsr.w    #1,d2            ;/2
  624.  
  625.     add.w    d6,d2
  626.     move.b    d2,3(a1)        ;x start
  627.     move.w    d2,d3            ;d3 bewaren !
  628.  
  629.     add.w    d4,d2            ;d4 bewaren !
  630.     move.b    d2,7(a1)        ;x end
  631.     
  632.     move.w    pic_vew(a2),d6
  633.     btst    #15,d6            ;hires ?
  634.     beq.s    grap.nohi5    
  635.     add.l    d4,d4            ;*2
  636.     bra.s    grap.noshi5
  637. grap.nohi5
  638.     btst    #6,d6            ;super hires ?
  639.     beq.s    grap.noshi5    
  640.     add.l    d4,d4            ;*4
  641.     add.l    d4,d4
  642. grap.noshi5
  643.  
  644.     move.l    d7,-(sp)
  645.     move.w    pic_vew(a2),d6
  646.     move.l    #17,d0
  647.     move.l    #4,d1            ;ecs 1
  648.     move.l    #3,d7
  649.  
  650.     btst    #15,d6            ;hires ?
  651.     beq.s    grap.nohi3    
  652.     move.l    #17,d0            ;ecs 9
  653.     move.l    #4,d1            ;ecs 2
  654.     move.l    #2,d7
  655.     bra.s    grap.noshi3
  656. grap.nohi3
  657.     btst    #6,d6            ;super hires ?
  658.     beq.s    grap.noshi3    
  659.     move.l    #17,d0            ;ecs 9
  660.     move.l    #4,d1            ;ecs 2
  661.     move.l    #1,d7
  662. grap.noshi3
  663.     sub.w    d0,d3
  664.     lsr.w    #1,d3
  665.     move.w    d3,10(a1)        ;ddfstrt
  666.     
  667.     move.w    d4,d2            ;pic breedte in pixels
  668.     lsr.w    #4,d2            ;/16
  669.     sub.w    d1,d2            ;-1
  670.  
  671.     lsl.w    d7,d2            ;*8
  672.     add.w    d2,d3
  673.     move.w    d3,14(a1)        ;ddfstop
  674.     move.l    (sp)+,d7
  675.     
  676.     lea    pic_raw(a2),a0
  677.  
  678.     moveq.l    #0,d2
  679.     move.w    pic_dpt(a2),d2
  680.     sub.l    #1,d2
  681.     muls    pic_wid(a2),d2
  682.     add.w    d2,d5
  683.  
  684.     move.w    pic_vew(a2),d2        ;viewmode add
  685.     btst    #2,d2
  686.     beq.s    grap.nolace4
  687.  
  688.     moveq.l    #0,d2
  689.     move.w    pic_dpt(a2),d2
  690.     muls    pic_wid(a2),d2
  691.     add.w    d2,d5            ;interlace gedoe
  692. grap.nolace4
  693.  
  694.     lea    gracprbpl,a4        ;iffpln neerzetten
  695.     lea    gracprpln,a0        ;iffpln neerzetten
  696.     moveq.l    #0,d2
  697.     move.w    pic_dpt(a2),d2        ;plnnummer 1 halen
  698.     move.l    #8,d6            ;copper step !
  699.  
  700.     tst.l    curpic2            ;2de picture ?
  701.     bne.s    grap.pic2
  702. grap.nopic2
  703.     move.w    d5,34(a1)        ;modulo oneven zetten
  704.     bra    grap.nodpl
  705. grap.pic2
  706.     move.l    curpic2,a3        ;oneven plane
  707.     move.l    curpic2+4,a6        ;oneven plane
  708.     move.l    currot2,a5        ;oneven plane
  709.     clr.l    curpic2            ;mischien niet goed
  710.     clr.l    curpic2+4        ;mischien niet goed
  711.     clr.l    curpal2            ;mischien niet goed
  712.     clr.l    currot2            ;mischien niet goed
  713.  
  714.     cmp.l    curpic1,a3        ;picture hetzelfde ?
  715.     beq.s    grap.nopic2
  716.     
  717.     cmp.l    #0,currot1        ;routine ?    
  718.     beq.s    grap.norot
  719.     cmp.l    currot1,a5        ;routine hetzelfde ?
  720.     beq.s    grap.nopic2
  721. grap.norot
  722.     cmp.b    #4,d2            ;> 16 kleuren ? (AGA)
  723.     bgt    grap.nopic2
  724.  
  725.     move.w    pic_dpt(a3),d3        ;plnnummer 2 halen
  726.     cmp.b    d2,d3            ;gelijke plnummers ?
  727.     bne.s    grap.nopic2
  728.     move.w    pic_vew(a2),d1
  729.     cmp.w    pic_vew(a3),d1        ;view gelijk ?
  730.     bne.s    grap.nopic2
  731.  
  732.     move.w    pic_vew(a2),d1        ;groter dan view test
  733.     btst    #6,d1            ;super hires ?
  734.     beq.s    grap.nohi2a
  735.     move.l    #vew_wid*4,d1
  736.     bra.s    grap.nohi2b
  737. grap.nohi2a
  738.     btst    #15,d1            ;hires ?
  739.     beq.s    grap.noshi2a
  740.     move.l    #vew_wid*2,d1
  741.     bra.s    grap.nohi2b
  742. grap.noshi2a
  743.     move.l    #vew_wid,d1
  744. grap.nohi2b
  745.     cmp.w    pic_wid(a2),d1        ;breder dan view ?
  746.     bgt.s    grap.small
  747.     cmp.w    pic_wid(a3),d1        ;breder dan view ?
  748.     bgt.s    grap.small
  749.  
  750.     move.w    pic_vew(a2),d1
  751.     btst    #2,d1
  752.     beq.s    grap.nolace8a
  753.     move.l    hogscr,d1
  754.     add.l    d1,d1
  755.     bra.s    grap.nolace8b
  756. grap.nolace8a
  757.     move.l    hogscr,d1
  758. grap.nolace8b
  759.     cmp.w    pic_hgt(a2),d1        ;hoger dan view ?
  760.     bgt.s    grap.small
  761.     cmp.w    pic_hgt(a3),d1        ;hoger dan view ?
  762.     bgt.s    grap.small
  763.     bra.s    grap.big
  764.  
  765. grap.small
  766.     move.w    pic_hgt(a2),d1        ;wid+hgt<vew
  767.     cmp.w    pic_hgt(a3),d1        ;hoogte gelijk ?
  768.     bne    grap.nopic2
  769.     move.w    pic_wid(a2),d1
  770.     cmp.w    pic_wid(a3),d1        ;breedte gelijk ?
  771.     bne    grap.nopic2
  772.  
  773. grap.big
  774.     move.l    a3,curpic2        ;toch wel goed !
  775.     move.l    a6,curpic2+4
  776.     move.l    a3,curpal2
  777.     move.l    a5,currot2
  778.  
  779.     tst.b    dplctr            ;dual playfield al gezet ?
  780.     beq    grap.nocop
  781.  
  782.     move.w    30(a1),34(a1)        ;modulo copieren
  783.  
  784.     move.w    2(a4),d1        ;bplcon0
  785.     btst    #10,d1            ;al dual playfield ?
  786.     beq.s    grap.ta
  787.  
  788.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  789.     move.w    6(a0),14(a0)
  790.  
  791.     move.w    18(a0),26(a0)        ;plane 2>3 copieren
  792.     move.w    22(a0),30(a0)
  793.  
  794.     move.w    34(a0),42(a0)        ;plane 4>5 copieren
  795.     move.w    38(a0),46(a0)
  796.  
  797.     move.w    50(a0),58(a0)        ;plane 6>7 copieren
  798.     move.w    54(a0),62(a0)
  799.  
  800.     bra.s    grap.tb
  801. grap.ta
  802.     move.w    24(a0),58(a0)        ;plane 3>7 copieren
  803.     move.w    28(a0),62(a0)
  804.  
  805.     move.w    18(a0),42(a0)        ;plane 2>5 copieren
  806.     move.w    22(a0),46(a0)
  807.  
  808.     move.w    10(a0),26(a0)        ;plane 1>3 copieren
  809.     move.w    14(a0),30(a0)
  810.  
  811.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  812.     move.w    6(a0),14(a0)
  813.  
  814. grap.tb
  815.     move.l    #palette,a3        ;palette copieren
  816.  
  817.     move.w    #16-1,d1
  818. grap.pal
  819.     move.l    (a3)+,60(a3)
  820.     dbra    d1,grap.pal
  821.  
  822. grap.nocop
  823.     add.w    d3,d2            ;aantal bitplanes
  824.     cmp.w    #8,d2            ;8 bitplanes ?
  825.     blt    grap.no8planes2
  826.     move.w    #%10000,d2        ;only bit 4
  827.     bra    grap.8planes2
  828. grap.no8planes2
  829.     lsl.w    #8,d2
  830.     lsl.w    #4,d2
  831. grap.8planes2
  832.     or.w    #$400,d2        ;dual playfield aan
  833.     move.w    d2,2(a4)        ;bplcon0
  834.  
  835.     movem.l    d0-d7/a0-a6,-(sp)
  836.  
  837.     move.l    curpic,a2        ;animpic ?
  838.     move.l    curfrm,d7
  839.     cmp.l    #0,a2
  840.     bne.s    grap.noanipic
  841.  
  842.     move.l    curpic2,a2        ;normal pic ?
  843.     move.l    curfrm2,d7
  844.     cmp.l    #0,a2
  845.     beq.s    grap.nodplpic
  846.  
  847. grap.noanipic
  848.     add.l    d6,a0
  849.     add.w    d6,d6
  850.     bsr.s    grappln            ;a2,d6,d7,d0
  851. grap.nodplpic
  852.     movem.l    (sp)+,d0-d7/a0-a6
  853.     add.w    d6,d6
  854.     bra.s    grap.nodpla
  855.  
  856.  
  857. grap.nodpl                ;geen dual playfield
  858.     cmp.w    #8,d2            ;8 bitplanes ?
  859.     blt    grap.no8planes
  860.     move.w    #%10000,d2        ;only bit 4
  861.     bra    grap.8planes
  862. grap.no8planes
  863.     lsl.w    #8,d2
  864.     lsl.w    #4,d2
  865. grap.8planes
  866.     move.w    d2,2(a4)        ;bplcon0
  867.  
  868. grap.nodpla
  869.     move.w    d5,30(a1)        ;modulo even
  870.  
  871.     moveq.l    #0,d3
  872.     add.w    pic_vew(a2),d3        ;viewmode add
  873.     moveq.l    #0,d2
  874.     move.w    2(a4),d2
  875.     or.l    d3,d2
  876.  
  877.     ifd    gui
  878.     tst.b    genlck
  879.     bne    grap.genset
  880.     endc
  881.  
  882.     or.l    #$100,d2        ;genlock off ($302)
  883.  
  884.     ifd    gui
  885.     bra    grap.gencont
  886. grap.genset
  887.     or.l    #$102,d2        ;genlock on ($302)
  888. grap.gencont
  889.     endc
  890.     
  891.     move.w    d2,2(a4)
  892.     
  893.     bsr.s    grappln            ;a2,d6,d7,d0
  894.  
  895. grap.end
  896.     
  897.     movem.l    (sp)+,d0-d7/a0-a6
  898.     rts
  899.         
  900.  
  901.     ;sets on of the 2 possible pictures to the copper
  902.     ;handles interlace
  903.  
  904.     ;d7=framenummer
  905.     ;d6=copperliststap
  906.     ;d0=raw planes positie
  907.     ;a2=current picture
  908. grappln                    ;planes invullen 
  909.     movem.l    d0-d7/a0-a6,-(sp)
  910.  
  911.     lea    pic_raw(a2),a1
  912.     move.l    a1,d0            ;raw planes
  913.     
  914.     moveq.l    #0,d2            ;x*y
  915.     move.w    pic_wid(a2),d2
  916.     lsr.l    #1,d2            ;/2
  917.     moveq.l    #0,d3
  918.     move.w    pic_hgt(a2),d3
  919.     muls    d3,d2
  920.     
  921.     move.l    d2,d4
  922.     add.l    d2,d2
  923.  
  924.     move.w    pic_dpt(a2),d3
  925.     muls    d3,d4            ;hele picture size
  926.     muls    d7,d4            ;frame*size d7 !!!
  927.  
  928.     add.l    d4,d4
  929.  
  930.     add.l    d4,d0
  931.  
  932.     move.l    #vew_wid,d5        ;max x view
  933.     move.l    hogscr,d4        ;max y view
  934.     move.w    pic_vew(a2),d1        ;viewmode add
  935.     btst    #2,d1
  936.     beq.s    grappln.nolace
  937.     add.l    d4,d4            ;max y view
  938. grappln.nolace
  939.     btst    #15,d1            ;hires ?
  940.     beq.s    grappln.nohi
  941.     move.l    #vew_wid*2,d5        ;max x view
  942.     bra.s    grappln.noshi
  943. grappln.nohi
  944.     btst    #6,d1            ;super hires ?
  945.     beq.s    grappln.noshi
  946.     move.l    #vew_wid*4,d5        ;max x view
  947. grappln.noshi
  948.  
  949.     moveq.l    #0,d3            ;scherm centreren
  950.     move.w    pic_wid(a2),d3        ;pic breedte in bytes
  951.     cmp.w    d5,d3            ;breder dan scherm ?
  952.     ble.s    grappln.qa
  953.     sub.w    d5,d3            ;-scherm breedte
  954.     lsr.w    #2,d3            ;/4
  955.  
  956.     add.l    d3,d3
  957.  
  958.     add.l    d3,d0
  959. grappln.qa
  960.     move.w    pic_hgt(a2),d3        ;pic hoogte in bytes
  961.     cmp.w    d4,d3            ;hoger dan scherm ?
  962.     ble.s    grappln.qb
  963.     sub.w    d4,d3            ;-scherm breedte
  964.     lsr.w    #1,d3            ;/2
  965.     moveq.l    #0,d5
  966.     move.w    pic_wid(a2),d5        ;pic breedte in bytes
  967.     muls    pic_dpt(a2),d5
  968.     muls    d5,d3
  969.     add.l    d3,d0
  970. grappln.qb
  971.     moveq.l    #0,d2
  972.     move.w    pic_wid(a2),d2
  973.  
  974.     move.w    pic_vew(a2),d5        ;interlace flipping ?
  975.     btst    #2,d5
  976.     beq.s    grappln.nolac7b
  977.  
  978.     move.w    $04(a6),d5        ;even/oneven ?
  979.     btst    #15,d5
  980.     beq.s    grappln.nolac7b
  981.     
  982.     moveq.l    #0,d3
  983.     move.w    pic_wid(a2),d3
  984.     muls    pic_dpt(a2),d3
  985.     add.l    d3,d0
  986. grappln.nolac7b
  987.  
  988.     move.w    pic_dpt(a2),d1        ;plnnummer 1 halen
  989.     tst.w    d1            ;0 planes ?
  990.     beq    grappln.end
  991.     sub.w    #1,d1
  992. grappln.a
  993.     move.w    d0,3*2(a0)
  994.     swap    d0
  995.     move.w    d0,1*2(a0)
  996.     swap    d0
  997.     add.l    d6,a0            ;d6=copper step !
  998.     add.l    d2,d0
  999.     dbra    d1,grappln.a
  1000.  
  1001.     cmp.w    #8,pic_dpt(a2)        ;8 planes ?
  1002.     bne    grappln.noham8
  1003.     btst    #3,pic_vew(a2)        ;ham ?
  1004.     beq    grappln.noham8
  1005.  
  1006.     move.w    -14(a0),d0        ;get 6
  1007.     move.w    -10(a0),d1
  1008.     move.w    -6(a0),d2        ;get 7
  1009.     move.w    -2(a0),d3
  1010.     move.w    -18(a0),-2(a0)        ;5>7
  1011.     move.w    -22(a0),-6(a0)        ;5>7
  1012.     move.w    -26(a0),-10(a0)        ;4>6
  1013.     move.w    -30(a0),-14(a0)        ;4>6
  1014.     move.w    -34(a0),-18(a0)        ;3>5
  1015.     move.w    -38(a0),-22(a0)        ;3>5
  1016.     move.w    -42(a0),-26(a0)        ;2>4
  1017.     move.w    -46(a0),-30(a0)        ;2>4
  1018.     move.w    -50(a0),-34(a0)        ;1>3
  1019.     move.w    -54(a0),-38(a0)        ;1>3
  1020.     move.w    -58(a0),-42(a0)        ;0>2
  1021.     move.w    -62(a0),-46(a0)        ;0>2
  1022.     move.w    d0,-62(a0)        ;6>0
  1023.     move.w    d1,-58(a0)        ;6>0
  1024.     move.w    d2,-54(a0)        ;7>1
  1025.     move.w    d3,-50(a0)        ;7>1
  1026. grappln.noham8
  1027.  
  1028. grappln.end
  1029.     movem.l    (sp)+,d0-d7/a0-a6
  1030.     rts
  1031.  
  1032.     ;sets palettes to palette-buffer
  1033.     
  1034. grac
  1035.     movem.l    d0-d7/a0-a6,-(sp)
  1036.  
  1037.     lea    curpal1,a3        ;palette 1
  1038.     move.l    #palette,a1
  1039.     bsr.s    gracfrm
  1040.  
  1041.     lea    curpal2,a3        ;palette 2 (dpl)
  1042.     move.l    #16*4+palette,a1
  1043.     bsr.s    gracfrm
  1044.     
  1045.     bsr    palctr            ;palette-buffer to copper
  1046. grac.end
  1047.     movem.l    (sp)+,d0-d7/a0-a6
  1048.     rts
  1049.         
  1050.     ;moves palette from picture to palette-buffer
  1051.  
  1052. gracfrm
  1053.     movem.l    d0-d7/a0-a6,-(sp)
  1054.     tst.l    (a3)            ;palette aanwezig ?
  1055.     beq.s    gracfrm.end
  1056.  
  1057.     move.l    (a3),a2            ;current palette
  1058.     
  1059.     cmp.l    #'PALE',(a2)        ;palette ?
  1060.     bne.s    gracfrm.pict
  1061.     lea    6(a2),a0        ;palette
  1062.     move.w    4(a2),d0        ;aantal kleuren
  1063.     bra.s    gracfrm.col
  1064. gracfrm.pict
  1065.     cmp.l    #'ANIM',(a2)        ;animatie ?
  1066.     bne.s    gracfrm.noanim
  1067.  
  1068.     moveq.l    #0,d1
  1069.     move.w    pic_ani(a2),d1
  1070.     bclr    #7,d1            ;behandelbit weghalen
  1071.  
  1072.     moveq.l    #0,d3
  1073.     move.w    pic_wid(a2),d3
  1074.     lsr.w    #1,d3            ;/2
  1075.     muls    pic_hgt(a2),d3
  1076.     muls    pic_dpt(a2),d3
  1077.  
  1078.     add.l    d3,d3
  1079.  
  1080.     add.l    #pic_raw,d3
  1081.     move.l    d3,d5
  1082.  
  1083.     btst    #0,d1
  1084.     bne.s    gracfrm.buf2
  1085.     moveq.l    #0,d5
  1086. gracfrm.buf2
  1087.     add.l    d5,a2
  1088. gracfrm.noanim
  1089.     lea    pic_pal(a2),a0        ;palette
  1090.     move.w    pic_palnum(a2),d0
  1091.  
  1092.     tst.w    d0            ;0 planes ?
  1093.     beq.s    gracfrm.end
  1094. gracfrm.col
  1095. gracfrm.fa
  1096.     move.l    (a0)+,(a1)+
  1097.     dbra    d0,gracfrm.fa
  1098. gracfrm.end
  1099.     movem.l    (sp)+,d0-d7/a0-a6
  1100.     rts
  1101.     
  1102.     ;handles colorcycling in the palette-buffer
  1103.  
  1104. palcycctr
  1105.     movem.l    d0-d7/a0-a6,-(sp)
  1106.  
  1107.     move.l    curpic1,a2        ;current raw
  1108.     cmp.l    #0,a2
  1109.     beq.s    palcycctr.qb
  1110.     lea    cycdel1,a3        ;cycle delays
  1111.     move.l    #paltab,a4
  1112.     bsr    palcyc
  1113. palcycctr.qb
  1114.     move.l    curpic2,a2        ;current raw
  1115.     cmp.l    #0,a2
  1116.     beq.s    palcycctr.c
  1117.     lea    cycdel2,a3        ;cycle delays
  1118.     move.l    #16*2+paltab,a4
  1119.     bsr    palcyc
  1120. palcycctr.c
  1121.     movem.l    (sp)+,d0-d7/a0-a6
  1122.     rts
  1123.     
  1124.     ;copies palette-buffer to copper
  1125.  
  1126. palctr
  1127.     movem.l    d0-d7/a0-a6,-(sp)
  1128.  
  1129.     lea    gracprcol,a1        ;AGA
  1130.     move.l    #palette,a0
  1131.     move.l    #paltab,a2
  1132.     move.w    #8-1,d6
  1133. palctr.e
  1134.     move.w    #32-1,d7
  1135. palctr.d
  1136.     move.w    (a2)+,d0            ;get cycle-position
  1137.     move.w    (a0,d0),6(a1)            ;high RGB bits
  1138.     move.w    2(a0,d0),((32+1)*4)+6(a1)    ;low RGB bits
  1139.     add.l    #4,a1
  1140.     dbra    d7,palctr.d
  1141.     add.l    #((32+2)*4),a1
  1142.     dbra    d6,palctr.e
  1143. palctr.end
  1144.     movem.l    (sp)+,d0-d7/a0-a6
  1145.     rts
  1146.  
  1147.     ;reset palette tabel, for proper color cycling
  1148.  
  1149. paltabres
  1150.     movem.l    d0-d7/a0-a6,-(sp)
  1151.     lea    paltab,a0
  1152.     clr.l    d0
  1153.     move.w    #256-1,d1
  1154. paltabres.a
  1155.     move.w    d0,(a0)+
  1156.     add.w    #4,d0            ;aga color words, high RGB + low RGB
  1157.     dbra    d1,paltabres.a
  1158. paltabres.end
  1159.     movem.l    (sp)+,d0-d7/a0-a6
  1160.     rts
  1161.  
  1162.     ;colorcyclinghandling of a palette
  1163.  
  1164. palcyc
  1165.     movem.l    d0-d7/a0-a6,-(sp)
  1166.     move.w    #4-1,d7            ;4 cycles
  1167. palcyc.d
  1168.     tst.w    (a3)+            ;delay klaar ?
  1169.     bne.s    palcyc.c
  1170.     
  1171.     moveq.l    #0,d1
  1172.     move.b    pic_cycstr(a2),d1    ;start color
  1173.     lsl.b    #1,d1        ;*2
  1174.  
  1175.     moveq.l    #0,d2
  1176.     move.b    pic_cycend(a2),d2    ;end color
  1177.     lsl.b    #1,d2        ;*2
  1178.  
  1179.     moveq.l    #0,d3
  1180.     move.b    pic_cycadd(a2),d3    ;richting
  1181.  
  1182.     move.l    a4,a0            ;palette pointer
  1183.     move.l    a0,a1
  1184.     add.l    d1,a0            ;startcolor
  1185.     add.l    d2,a1            ;endcolor
  1186.     
  1187.     cmp.b    #1,d3            ;omhoog
  1188.     beq.s    palcyc.up    
  1189.     cmp.b    #3,d3            ;omlaag
  1190.     beq.s    palcyc.down
  1191.     bra.s    palcyc.i
  1192.  
  1193. palcyc.up                ;kleuren copieren
  1194.     move.w    (a1),d4            ;laatst color bewaren
  1195. palcyc.f                ;kleuren copieren
  1196.     cmp.l    a0,a1
  1197.     beq.s    palcyc.fa
  1198.     move.w    -(a1),2(a1)
  1199.     bra.s    palcyc.f
  1200. palcyc.fa
  1201.     move.w    d4,(a1)
  1202.     bra.s    palcyc.g    
  1203.     
  1204. palcyc.down
  1205.     move.w    (a0),d4            ;laatst color bewaren
  1206. palcyc.h                ;kleuren copieren
  1207.     cmp.l    a0,a1
  1208.     beq.s    palcyc.ha
  1209.     move.w    2(a0),(a0)+
  1210.     bra.s    palcyc.h
  1211. palcyc.ha
  1212.     move.w    d4,(a1)
  1213.  
  1214. palcyc.g
  1215.     move.b    pic_cycspd(a2),-1(a3)    ;delay zetten
  1216.     bra.s    palcyc.i
  1217. palcyc.c
  1218.     sub.w    #1,-2(a3)        ;cycle delay aftellen
  1219. palcyc.i
  1220.     add.l    #4,a2            ;next cycle info
  1221.     dbra    d7,palcyc.d
  1222.  
  1223. palcyc.qb
  1224.     movem.l    (sp)+,d0-d7/a0-a6
  1225.     rts
  1226.  
  1227.  
  1228.  
  1229. ;    SECTION    variabelen,DATA_c
  1230.  
  1231.     cnop    0,2
  1232. curtsk        dc.l    0
  1233. tskpri        dc.l    0
  1234. duplok        dc.l    0
  1235. inttel        dc.l    0
  1236. intdel        dc.l    0
  1237.  
  1238. form        dc.l    0
  1239. ifffil        dc.l    0
  1240. intvbold    dc.l    0
  1241. inttbeold    dc.l    0
  1242. patpos        dc.l    0
  1243. gfxlib        dc.l    0
  1244. doslib        dc.l    0
  1245. wbview      dc.l    0
  1246. mt_data        dc.l    0
  1247. memvid        dc.l    0
  1248. oldcprlist    dc.l    0
  1249. hogscr        dc.l    vew_hgt
  1250.  
  1251. inspos        dc.l    -1
  1252. anispd1        dc.w    1    ;nooit op 0 !
  1253. anispd2        dc.w    1
  1254.  
  1255.         cnop    0,2
  1256. varclr.s            ;start wissen
  1257. oldrot        dc.l    0
  1258. curpic        dc.l    0
  1259. curfrm        dc.l    0
  1260. cycdel1        ds.w    4
  1261. cycdel2        ds.w    4
  1262.  
  1263. rotinf1        dc.w    0
  1264. rotinf2        dc.w    0
  1265.  
  1266. effspd        dc.w    0
  1267. efflop        dc.b    0
  1268. anilop1        dc.b    0
  1269. anilop2        dc.b    0
  1270. anipal1        dc.b    0
  1271. anipal2        dc.b    0
  1272. rotdpl        dc.b    1
  1273. rottrg        dc.b    0
  1274. dplctr        dc.b    0
  1275.         cnop    0,2
  1276.  
  1277. insdat        ds.l    4
  1278. inspri        dc.l    0
  1279. instel        dc.w    0
  1280.  
  1281. cureff        dc.l    0
  1282. efftel        dc.w    0
  1283.  
  1284. curpal1        dc.l    0
  1285. curpal2        dc.l    0
  1286. currot1        dc.l    0
  1287. currot2        dc.l    0
  1288. curpic1        dc.l    0
  1289. curpic2        dc.l    0
  1290. anitel1        dc.w    0
  1291. anitel2        dc.w    0
  1292. curfrm1        dc.l    0
  1293. curfrm2        dc.l    0
  1294. oldfrm1        dc.l    0
  1295. oldfrm2        dc.l    0
  1296.  
  1297. varclr.e
  1298.         dc.l    0            ;wisruimte
  1299.     
  1300. varclr.ql    equ    varclr.e-varclr.s    ;wislengte
  1301.     
  1302. ntscmode    dc.b    0
  1303. end        dc.b    0
  1304.  
  1305. pronam    dc.b    'VideoTracker',0
  1306.     cnop    0,2
  1307. dosnam    dc.b    'dos.library',0
  1308.     cnop    0,4
  1309. gfxnam    dc.b    'graphics.library',0
  1310.     cnop    0,4
  1311.     
  1312.     cnop    0,4
  1313. gra.s            ;copperlist edit buffer
  1314. gracprscr
  1315.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1316. gracprbpl
  1317.     dc.w    $100,$0000,$102,$0000,$104,$0020
  1318.     dc.w    $108,$0000,$10a,$0000,$1fc,$0003
  1319. gracprpln
  1320.     dc.w    $e0,$0000,$e2,$0000    ;1
  1321.     dc.w    $e4,$0000,$e6,$0000    ;2
  1322.     dc.w    $e8,$0000,$ea,$0000    ;3
  1323.     dc.w    $ec,$0000,$ee,$0000    ;4
  1324.     dc.w    $f0,$0000,$f2,$0000    ;5
  1325.     dc.w    $f4,$0000,$f6,$0000    ;6
  1326.     dc.w    $f8,$0000,$fa,$0000    ;7
  1327.     dc.w    $fc,$0000,$fe,$0000    ;8
  1328. gracprcol
  1329.     dc.w    $106,$0000
  1330.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1331.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1332.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1333.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1334.     dc.w    $106,$0200
  1335.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1336.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1337.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1338.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1339.  
  1340.     dc.w    $106,$2000
  1341.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1342.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1343.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1344.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1345.     dc.w    $106,$2200
  1346.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1347.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1348.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1349.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1350.  
  1351.     dc.w    $106,$4000
  1352.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1353.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1354.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1355.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1356.     dc.w    $106,$4200
  1357.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1358.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1359.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1360.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1361.  
  1362.     dc.w    $106,$6000
  1363.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1364.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1365.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1366.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1367.     dc.w    $106,$6200
  1368.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1369.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1370.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1371.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1372.  
  1373.     dc.w    $106,$8000
  1374.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1375.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1376.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1377.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1378.     dc.w    $106,$8200
  1379.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1380.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1381.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1382.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1383.  
  1384.     dc.w    $106,$a000
  1385.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1386.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1387.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1388.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1389.     dc.w    $106,$a200
  1390.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1391.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1392.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1393.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1394.  
  1395.     dc.w    $106,$c000
  1396.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1397.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1398.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1399.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1400.     dc.w    $106,$c200
  1401.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1402.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1403.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1404.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1405.  
  1406.     dc.w    $106,$e000
  1407.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1408.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1409.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1410.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1411.     dc.w    $106,$e200
  1412.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1413.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1414.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1415.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1416.  
  1417.     dc.w    $106,$1000
  1418.  
  1419. cprjmp
  1420.     dc.w    $080,0,$082,0
  1421. gra.e
  1422. gra.ql    equ    gra.e-gra.s        ;block lengte
  1423.  
  1424. cpr                    ;real copperlist
  1425.     dc.w    $0001,$fffe
  1426.     dc.w    $09c,$8001        ;tbeint
  1427. cprspr
  1428.     dc.w    $120,$0000,$122,$0000
  1429.     dc.w    $124,$0000,$126,$0000
  1430.     dc.w    $128,$0000,$12a,$0000
  1431.     dc.w    $12c,$0000,$12e,$0000
  1432.     dc.w    $130,$0000,$132,$0000
  1433.     dc.w    $134,$0000,$136,$0000
  1434.     dc.w    $138,$0000,$13a,$0000
  1435.     dc.w    $13c,$0000,$13e,$0000
  1436.  
  1437. cprbuf
  1438.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1439.     dc.w    $100,$9000,$102,$0000,$104,$0020
  1440.     dc.w    $108,$0000,$10a,$0000,$1fc,$0003
  1441.  
  1442.     dc.w    $e0,$0000,$e2,$0000    ;0
  1443.     dc.w    $e4,$0000,$e6,$0000    ;1
  1444.     dc.w    $e8,$0000,$ea,$0000    ;2
  1445.     dc.w    $ec,$0000,$ee,$0000    ;3
  1446.     dc.w    $f0,$0000,$f2,$0000    ;4
  1447.     dc.w    $f4,$0000,$f6,$0000    ;5
  1448.     dc.w    $f8,$0000,$fa,$0000    ;6
  1449.     dc.w    $fc,$0000,$fe,$0000    ;7
  1450.  
  1451.     dc.w    $106,$0000
  1452.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1453.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1454.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1455.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1456.     dc.w    $106,$0200
  1457.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1458.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1459.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1460.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1461.  
  1462.     dc.w    $106,$2000
  1463.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1464.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1465.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1466.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1467.     dc.w    $106,$2200
  1468.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1469.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1470.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1471.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1472.  
  1473.     dc.w    $106,$4000
  1474.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1475.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1476.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1477.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1478.     dc.w    $106,$4200
  1479.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1480.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1481.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1482.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1483.  
  1484.     dc.w    $106,$6000
  1485.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1486.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1487.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1488.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1489.     dc.w    $106,$6200
  1490.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1491.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1492.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1493.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1494.  
  1495.     dc.w    $106,$8000
  1496.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1497.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1498.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1499.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1500.     dc.w    $106,$8200
  1501.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1502.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1503.      dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1504.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1505.  
  1506.     dc.w    $106,$a000
  1507.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1508.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1509.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1510.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1511.     dc.w    $106,$a200
  1512.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1513.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1514.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1515.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1516.  
  1517.     dc.w    $106,$c000
  1518.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1519.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1520.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1521.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1522.     dc.w    $106,$c200
  1523.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1524.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1525.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1526.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1527.  
  1528.     dc.w    $106,$e000
  1529.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1530.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1531.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1532.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1533.     dc.w    $106,$e200
  1534.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1535.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1536.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1537.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1538.  
  1539.     dc.w    $106,$1000
  1540.  
  1541.     dc.w    $080,0,$082,0
  1542. cprbuf.e
  1543.  
  1544.     dc.w    $088,$0000        ;copjmp2
  1545.     dc.w    $080,0,$082,0        ;moet achter cprbck blijven !
  1546. cprbck
  1547. sprdat
  1548.     dc.w    $ffff,$fffe
  1549.  
  1550. palette        ds.l    256        ;palette 24-bits, far out !
  1551. paltab        ds.w    256        ;palette cycle-tabel
  1552.  
  1553.     cnop    0,2
  1554. var    ds.b    $300    ;variabelen voor routines
  1555.  
  1556.     
  1557. ;    SECTION    10,CODE_C
  1558.         endc
  1559.  
  1560. ; this is the routine-source
  1561. ;**********************************************************************
  1562.  
  1563. ;vew_wid    equ    48
  1564. ;vew_hgt    equ    290
  1565. ;win_hgt    equ    117
  1566. ;win_str    equ    $20
  1567.  
  1568. ;bit8        ;full 8 bit copper
  1569. ;bit4        ;48*48 4 bit copper
  1570. bit4aga        ;88*72 4 bit copper
  1571.  
  1572. ;calc        ;on=calculate tunnel-data,off=play tunnel
  1573.  
  1574. rottun_wid    equ    256
  1575. rottun_hgt    equ    256
  1576.  
  1577.         ifd    calc
  1578. rotpic_wid    equ    11
  1579. rotpic_hgt    equ    72
  1580. rotpic_dpt    equ    1
  1581.         endc
  1582.         
  1583.         ifnd    calc
  1584. ;rotpic_wid    equ    40
  1585. ;rotpic_hgt    equ    256
  1586. ;rotpic_dpt    equ    1
  1587. ;rotcop_hgt    equ    113
  1588. ;rotcop_dpt    equ    5
  1589.         endc
  1590.         
  1591.         ifd    bit4aga
  1592. rotpic_y    equ    288
  1593. rotpic_yp    equ    72
  1594. rotpic_x    equ    88
  1595.         endc
  1596.         ifd    bit4
  1597. rotpic_y    equ    192
  1598. rotpic_yp    equ    48
  1599. rotpic_x    equ    48
  1600.         endc
  1601.         ifd    bit8
  1602. rotpic_y    equ    288
  1603. rotpic_yp    equ    36
  1604. rotpic_x    equ    48
  1605.         endc
  1606.  
  1607. ;    Input:
  1608. ;    a0=variabelen tabel
  1609. ;    d0=routinfo
  1610.  
  1611. ;    Output:
  1612. ;    a0=picture
  1613. ;    d1=copperlist
  1614.  
  1615.     SECTION    3,CODE_C
  1616.  
  1617. rot
  1618.     ifnd    ocs
  1619.     dc.l    'ROT2'
  1620.     endc
  1621.     ifd    ocs
  1622.     dc.l    'ROUT'
  1623.     endc
  1624.  
  1625.     movem.l    d2-d7/a1-a6,-(sp)
  1626.  
  1627.     lea    ($dff000).l,a6        ;hardware
  1628.     lea    rot,a5            ;prog base
  1629.  
  1630.     ifd    bit8
  1631.     sub.l    a1,a1
  1632.     clr.l    d1
  1633.     tst.w    d0
  1634.     beq    rot.c
  1635.     lea    rotpicemp,a1
  1636. rot.c    
  1637.     move.l    a1,rotpicvew-rot(a5)
  1638.     endc
  1639.     
  1640. ;    move.l    #32768,d2
  1641. ;    bsr    getd7
  1642.  
  1643. ;rot.ea    
  1644. ;    move.l    #4,d2            ;routine
  1645. ;    bsr    getd7
  1646. ;    muls    #1380,d7
  1647. ;    move.l    d7,variabele1-rot(a5)
  1648. ;    move.l    #1,d2            ;breedte
  1649. ;    bsr    getd7
  1650. ;    muls    #6,d7
  1651. ;    move.l    d7,variabele7-rot(a5)
  1652.  
  1653. rot.end
  1654.     ifd    calc
  1655.     tst.b    rotcalcmode
  1656.     bne    rot.calcready
  1657.     endc
  1658.     bsr    rotint            ;eventueel init
  1659.     ifd    calc
  1660.     bsr    rotcal
  1661.     endc
  1662. rot.calcready
  1663.  
  1664.     move.l    var_cprbck(a0),d1
  1665.     sub.l    #8,d1
  1666.     move.l    a5,a1
  1667.     add.l    #rotcop1-rot,a1        ;copperjump adres zetten
  1668.     move.l    rotbuf-rot(a5),d2    ;double buffer
  1669.     add.l    d2,a1
  1670.     move.w    d1,6(a1)
  1671.     swap    d1
  1672.     move.w    d1,2(a1)
  1673.  
  1674.     ifd    bit8
  1675.     move.l    a1,a2
  1676.     add.l    #rotcprbck1ntsc,a2
  1677.     move.l    a1,a3
  1678.     add.l    #rotcprend1ntsc,a3
  1679.     move.l    a1,a4
  1680.     add.l    #rotcprbck1,a4
  1681.  
  1682. ;rotcprbck1        equ    (rotcoptus_l*(rotpic_y-124))+8
  1683. ;rotcprbck1ntsc        equ    (rotcoptus_l*(rotpic_y-180))+8
  1684. ;rotcprend1ntsc        equ    (rotcoptus_l*(rotpic_y-60))+8
  1685.  
  1686. cop_str            equ    $18
  1687. rotcprbck1_v        equ    (cop_str+rotpic_y-124)*$1000000+$29fffe
  1688. rotcprbck1ntsc_v    equ    (cop_str+rotpic_y-180)*$1000000+$29fffe
  1689. rotcprend1ntsc_v    equ    (cop_str+rotpic_y-60)*$1000000+$29fffe
  1690.  
  1691.     cmp.b    #50,var_ntsc(a0)    ;ntsc/pal frequence
  1692.     bne    rot.ntsc
  1693.     move.l    #rotcprbck1ntsc_v,(a2)    ;reset ntsc split (cprbck1ntsc)
  1694.     move.l    #rotcprend1ntsc_v,(a3)    ;reset ntsc end (cprend1ntsc)
  1695.     add.l    #rotcprbck1,a1
  1696.     move.l    #rotcprbck1_v,d3    ;pal split (cprbck1)
  1697.     bra    rot.split
  1698. rot.ntsc
  1699.     move.l    #rotcprbck1_v,(a4)    ;reset pal split (cprbck1)
  1700.     move.l    #$00880000,(a3)        ;set ntsc end (cprend1ntsc)
  1701.     add.l    #rotcprbck1ntsc,a1
  1702.     move.l    #rotcprbck1ntsc_v,d3    ;(cprbck1ntsc)
  1703. rot.split
  1704.     move.l    #$00880000,(a1)        ;set break
  1705.     move.l    var_cprbck(a0),a2
  1706.     cmp.b    #$ff,(a2)        ;menu uit ?
  1707.     bne    rot.a
  1708.     move.l    d3,(a1)
  1709. rot.a
  1710.     endc
  1711.  
  1712.     ifd    bit4aga
  1713.     move.l    a1,a2
  1714.     add.l    #rotcprbck1ntsc,a2
  1715.     move.l    a1,a3
  1716.     add.l    #rotcprend1ntsc,a3
  1717.     move.l    a1,a4
  1718.     add.l    #rotcprbck1,a4
  1719.  
  1720. cop_str            equ    $1b
  1721. rotcprbck1_v        equ    (cop_str+rotpic_y-124)*$1000000+$01fffe
  1722. rotcprbck1ntsc_v    equ    (cop_str+rotpic_y-172)*$1000000+$01fffe
  1723. rotcprend1ntsc_v    equ    (cop_str+rotpic_y-60)*$1000000+$01fffe
  1724.  
  1725. rotcprbck1_vn        equ    (cop_str-2+rotpic_y-124)*$1000000+$01fffe
  1726. rotcprbck1ntsc_vn    equ    (cop_str-2+rotpic_y-172)*$1000000+$01fffe
  1727.  
  1728.     cmp.b    #50,var_ntsc(a0)    ;ntsc/pal frequence
  1729.     bne    rot.ntsc
  1730.     move.l    #rotcprbck1ntsc_v,(a2)    ;reset ntsc split (cprbck1ntsc)
  1731.     move.l    #rotcprend1ntsc_v,(a3)    ;reset ntsc end (cprend1ntsc)
  1732.     add.l    #rotcprbck1,a1
  1733.     move.l    #rotcprbck1_v,d3    ;pal split (cprbck1)
  1734.     bra    rot.split
  1735. rot.ntsc
  1736.     move.l    #rotcprbck1_vn,(a4)    ;reset pal split (cprbck1)
  1737.     move.l    #$00880000,(a3)        ;set ntsc end (cprend1ntsc)
  1738.     add.l    #rotcprbck1ntsc,a1
  1739.     move.l    #rotcprbck1ntsc_vn,d3    ;(cprbck1ntsc)
  1740. rot.split
  1741.     move.l    #$00880000,(a1)        ;set break
  1742.     move.l    var_cprbck(a0),a2
  1743.     cmp.b    #$ff,(a2)        ;menu uit ?
  1744.     bne    rot.a
  1745.     move.l    d3,(a1)
  1746. rot.a
  1747.     endc
  1748.  
  1749.     ifd    bit4
  1750.  
  1751. ;rotcprbck1        equ    (rotcoptus_l*(rotpic_y-78))+8
  1752. ;rotcprbck1ntsc        equ    (rotcoptus_l*(rotpic_y-106))+8
  1753.  
  1754. cop_str            equ    $4a
  1755. rotcprbck1_v        equ    (cop_str+rotpic_y-78)*$1000000+$c9fffe
  1756. rotcprbck1ntsc_v    equ    (cop_str+rotpic_y-106)*$1000000+$c9fffe
  1757. rotcprbck1_vn        equ    (cop_str-28+rotpic_y-78)*$1000000+$c9fffe
  1758. rotcprbck1ntsc_vn    equ    (cop_str-28+rotpic_y-106)*$1000000+$c9fffe
  1759.  
  1760.  
  1761.     move.l    a1,a2
  1762.     add.l    #rotcprbck1ntsc,a2
  1763.     move.l    a1,a4
  1764.     add.l    #rotcprbck1,a4
  1765.  
  1766.     cmp.b    #50,var_ntsc(a0)    ;ntsc/pal frequence
  1767.     bne    rot.ntsc
  1768.     move.l    #rotcprbck1ntsc_v,(a2)    ;reset ntsc split (cprbck1ntsc)
  1769.     add.l    #rotcprbck1,a1
  1770.     move.l    #rotcprbck1_v,d3    ;pal split (cprbck1)
  1771.     bra    rot.split
  1772. rot.ntsc
  1773.     move.l    #rotcprbck1_vn,(a4)    ;reset pal split (cprbck1)
  1774.     add.l    #rotcprbck1ntsc,a1
  1775.     move.l    #rotcprbck1ntsc_vn,d3    ;(cprbck1ntsc)
  1776. rot.split
  1777.     move.l    #$00880000,(a1)        ;set break
  1778.     move.l    var_cprbck(a0),a2
  1779.     cmp.b    #$ff,(a2)        ;menu uit ?
  1780.     bne    rot.a
  1781.     move.l    d3,(a1)
  1782. rot.a
  1783.     endc
  1784.     
  1785.     cmp.w    #16,d0
  1786.     bge    rot.tunnel
  1787.     bsr    rotlop            ;magnify+rotate
  1788.     bra    rot.verder
  1789. rot.tunnel
  1790.     ifnd    calc
  1791.     bsr    rotvew
  1792.     endc
  1793. rot.verder
  1794.  
  1795.     move.l    a5,a0
  1796.     add.l    #rotcop1-rot,a0
  1797.     move.l    rotbuf-rot(a5),d1
  1798.     add.l    a0,d1
  1799.     eor.l    #rotcop_l,rotbuf-rot(a5)
  1800.  
  1801.     ifd    bit8
  1802.     move.l    rotpicvew-rot(a5),a0
  1803.     endc
  1804.     
  1805.     ifnd    bit8
  1806.     move.l    a5,a0
  1807.     add.l    #rotpic-rot,a0
  1808.     endc
  1809.  
  1810.     ifd    calc
  1811.     lea    rotpic3,a0        ;picture
  1812.     endc
  1813.     movem.l    (sp)+,d2-d7/a1-a6
  1814.     rts
  1815.  
  1816. getd7
  1817.     move.w    d0,d1
  1818.     divs    d2,d1
  1819.     and.l    #$ffff,d1
  1820.     move.l    d1,d7
  1821.     muls    d2,d1
  1822.     sub.w    d1,d0
  1823.     move.l    d0,d6
  1824.     add.l    #1,d7
  1825.     rts
  1826.  
  1827. rotint
  1828.     movem.l    d0-d7/a0-a6,-(sp)
  1829.  
  1830.     move.l    a5,a2
  1831.     add.l    #rotcoptus.s-rot,a2
  1832.  
  1833.     ifnd    bit8
  1834.     move.l    rotcopstr-rot(a5),d0    ;pal start
  1835.     cmp.b    #50,var_ntsc(a0)    ;ntsc/pal frequence
  1836.     bne    rotint.ntsc
  1837.     move.l    #cop_str,rotcopstr-rot(a5)    ;pal start
  1838.     bra    rotint.split
  1839. rotint.ntsc
  1840.     ifd    bit4
  1841.     move.l    #cop_str-28,rotcopstr-rot(a5)    ;ntsc start
  1842.     endc
  1843.     ifd    bit4aga
  1844.     move.l    #cop_str-2,rotcopstr-rot(a5)    ;ntsc start
  1845.     endc
  1846. rotint.split
  1847.     cmp.l    rotcopstr-rot(a5),d0    ;veranderd ?
  1848.     bne    rotint.changed
  1849.     endc
  1850.  
  1851.     tst.b    (a2)            ;already filled ?
  1852.     bne    rotint.nocop
  1853.  
  1854. rotint.changed
  1855.     move.l    rotcopstr-rot(a5),d1    ;copper y position
  1856.     
  1857.     ifnd    bit4aga
  1858.     move.w    #rotpic_y-1,d0        ;number of copperlines
  1859.     endc
  1860.     ifd    bit4aga
  1861.     move.w    #rotpic_y/4-1,d0    ;number of copperlines
  1862.     endc
  1863. rotint.a
  1864.     move.b    d1,(a2)
  1865.  
  1866.     ifnd    bit4aga
  1867.     add.w    #1,d1
  1868.     endc
  1869.  
  1870.     ifd    bit4aga
  1871.     add.w    #3,d1
  1872. ;    move.b    d1,rotcoptus_l-4(a2)
  1873.     add.w    #1,d1
  1874.     endc
  1875.  
  1876.     add.l    #rotcoptus_l,a2
  1877.     dbra    d0,rotint.a
  1878.     
  1879.     move.l    a5,a2
  1880.     add.l    #rotcop1-rot,a2        ;copy copper1 to copper2
  1881.     move.l    a2,a1
  1882.     add.l    #rotcop_l,a1
  1883.     move.w    #rotcop_l/4-1,d0
  1884. rotint.bb
  1885.     move.l    (a2)+,(a1)+
  1886.     dbra    d0,rotint.bb
  1887.  
  1888. rotint.nocop
  1889.     move.l    var_pic1(a0),a1        ;picture
  1890.     cmp.l    #0,a1            ;empty ?
  1891.     beq    rotint.nopic
  1892.  
  1893.     cmp.l    rotbck-rot(a5),a1    ;already on screen ?
  1894.     beq    rotint.nopic
  1895.  
  1896.     move.w    pic_vew(a1),d0
  1897.     btst    #11,d0            ;hold and modify ?
  1898.     beq    rotint.nopic
  1899.  
  1900.     clr.l    d0
  1901.     move.w    pic_wid(a1),d0        ;get width
  1902.     ifnd    ocs
  1903.     sub.l    pic_widmod(a1),d0    ;animation-width modulo
  1904.     endc
  1905.     lsl.l    #3,d0            ;*8 for pixelnumber
  1906.  
  1907.     cmp.w    #320,d0            ;bigger than buffer ?
  1908.     beq    rotint.mod
  1909.     sub.w    #16,d0
  1910.     clr.l    rotcen-rot(a5)        ;modulo wissen
  1911.     cmp.w    #256,d0            ;bigger than buffer ?
  1912.     bge    rotint.nopic
  1913.     bra    rotint.nomod
  1914. rotint.mod
  1915.     move.l    d0,d1
  1916.     move.w    #256,d0
  1917.     sub.w    #256,d1
  1918.     lsr.l    #1+3,d1
  1919.     move.l    d1,rotcen-rot(a5)    ;modulo
  1920. rotint.nomod
  1921.  
  1922.     clr.l    d1
  1923.     move.w    pic_hgt(a1),d1        ;heigth
  1924.     cmp.w    #256,d1            ;bigger than buffer ?
  1925.     bgt    rotint.nopic
  1926.     muls    d1,d0            ;* heigth
  1927.     lsl.l    #1,d0            ;*2 for words
  1928.  
  1929.     cmp.l    #rotcol_l,d0        ;bigger than buffer ?
  1930.     bgt    rotint.nopic
  1931.  
  1932.     move.l    a1,rotbck-rot(a5)
  1933.  
  1934.     move.l    a5,a4
  1935.     add.l    #rotcol-rot,a4        ;start colorbuffer
  1936.     
  1937.     clr.l    d0
  1938.     move.w    pic_wid(a1),d0        ;get width
  1939.     
  1940.     lea    pic_raw(a1),a2        ;start raw planes
  1941.  
  1942.     clr.l    d3            ;colorvalue
  1943.     clr.l    d1            ;y start position
  1944. rotint.f
  1945.     add.l    rotcen-rot(a5),a2    ;modulo
  1946.     clr.l    d6            ;x start position
  1947. rotint.d
  1948.  
  1949.     move.l    #8-1,d7            ;read bits of 1 byte
  1950. rotint.c
  1951.     clr.l    d4            ;colorbits
  1952.     clr.l    d5            ;colorinfo
  1953.  
  1954.     btst    d7,(a2)            ;get colorbits
  1955.     beq    rotint.c0    
  1956.     bset    #0,d4
  1957. rotint.c0    
  1958.     add.l    d0,a2
  1959.     btst    d7,(a2)
  1960.     beq    rotint.c1    
  1961.     bset    #1,d4
  1962. rotint.c1    
  1963.     add.l    d0,a2
  1964.     btst    d7,(a2)
  1965.     beq    rotint.c2
  1966.     bset    #2,d4
  1967. rotint.c2
  1968.     add.l    d0,a2
  1969.     btst    d7,(a2)
  1970.     beq    rotint.c3
  1971.     bset    #3,d4
  1972. rotint.c3
  1973.  
  1974.     add.l    d0,a2            ;get colorinfo
  1975.     btst    d7,(a2)
  1976.     beq    rotint.c4
  1977.     bset    #0,d5
  1978. rotint.c4
  1979.     add.l    d0,a2
  1980.     btst    d7,(a2)
  1981.     beq    rotint.c5
  1982.     bset    #1,d5
  1983. rotint.c5
  1984.  
  1985.     rept    5
  1986.     sub.l    d0,a2
  1987.     endr
  1988.  
  1989.     tst.b    d5            ;true color ?
  1990.     bne    rotint.c00
  1991.     lea    pic_pal(a1),a3        ;palette
  1992.     ifnd    ocs
  1993.     lsl.l    #2,d4
  1994.     endc
  1995.     ifd    ocs
  1996.     lsl.l    #1,d4
  1997.     endc
  1998.     move.w    (a3,d4),d3
  1999.     bra    rotint.e
  2000. rotint.c00
  2001.     cmp.b    #1,d5            ;blue bits ?
  2002.     bne    rotint.c01
  2003.     and.w    #$ff0,d3        ;remove old bits
  2004.     or.w    d4,d3            ;set new bits
  2005.     bra    rotint.e
  2006. rotint.c01
  2007.     cmp.b    #2,d5            ;red bits ?
  2008.     bne    rotint.c02
  2009.     and.w    #$0ff,d3        ;remove old bits
  2010.     lsl.w    #8,d4
  2011.     or.w    d4,d3            ;set new bits
  2012.     bra    rotint.e
  2013. rotint.c02
  2014.     cmp.b    #3,d5            ;green bits ?
  2015.     bne    rotint.c03
  2016.     and.w    #$f0f,d3        ;remove old bits
  2017.     lsl.w    #4,d4
  2018.     or.w    d4,d3            ;set new bits
  2019.     bra    rotint.e
  2020. rotint.c03
  2021.  
  2022. rotint.e
  2023.     move.l    d1,d5            ;y pos
  2024.     lsl.l    #8,d5            ;*256 (width)
  2025.     lsl.l    #1,d5            ;make words
  2026.  
  2027.     move.l    d6,d4            ;x byte pos    
  2028.     lsl.l    #3,d4            ;make pixels
  2029.     add.l    #7,d4            ;x bit pos
  2030.     sub.l    d7,d4
  2031.     lsl.l    #1,d4            ;make words
  2032.  
  2033. rotint.g
  2034.     clr.l    d2
  2035.     move.w    pic_wid(a1),d2
  2036.     tst.l    rotcen-rot(a5)        ;modulo
  2037.     bne    rotint.skip2
  2038.     sub.l    #2,d2            ;dpaint ?
  2039. rotint.skip2    
  2040.     ifnd    ocs
  2041.     sub.l    pic_widmod(a1),d2    ;animation-width modulo
  2042.     endc
  2043.     lsl.l    #4,d2            ;make pixels and words
  2044.     
  2045.     move.l    d4,-(sp)
  2046. rotint.eb
  2047.     move.l    a4,a6
  2048.     add.l    d5,a6            ;x,y start
  2049.     add.l    d4,a6            ;x add
  2050.     move.w    d3,(a6)
  2051.     add.l    d2,d4
  2052.     cmp.l    #256*2,d4        ;reached border ?
  2053.     blt    rotint.eb
  2054.     move.l    (sp)+,d4
  2055.  
  2056.     clr.l    d2
  2057.     move.w    pic_hgt(a1),d2
  2058.     lsl.l    #8,d2            ;* total width (256)
  2059.     lsl.l    #1,d2            ;make words
  2060.  
  2061.     add.l    d2,d5
  2062.     cmp.l    #rotcol_l,d5        ;reached border ?
  2063.     blt    rotint.g
  2064.  
  2065. rotint.ge
  2066.     dbra    d7,rotint.c
  2067.  
  2068.     add.l    #1,a2            ;next byte
  2069.  
  2070.     add.l    #1,d6
  2071.     clr.l    d2
  2072.     move.w    pic_wid(a1),d2
  2073.     sub.l    rotcen-rot(a5),d2
  2074.     sub.l    rotcen-rot(a5),d2
  2075.     ifnd    ocs
  2076.     sub.l    pic_widmod(a1),d2    ;animation-width modulo
  2077.     endc
  2078.     tst.l    rotcen-rot(a5)        ;modulo
  2079.     bne    rotint.skip3
  2080.     sub.l    #2,d2            ;dpaint ?
  2081. rotint.skip3
  2082.     cmp.l    d2,d6
  2083.     bne    rotint.d
  2084.  
  2085.     ifnd    ocs
  2086.     add.l    pic_widmod(a1),a2    ;animation-width modulo
  2087.     endc
  2088.     tst.l    rotcen-rot(a5)        ;modulo
  2089.     bne    rotint.skip4
  2090.     add.l    #2,a2            ;dpaint ?
  2091. rotint.skip4
  2092.  
  2093.     rept    5
  2094.     add.l    d0,a2
  2095.     endr
  2096.  
  2097.     add.l    rotcen-rot(a5),a2    ;modulo
  2098.  
  2099.     add.l    #1,d1
  2100.     cmp.w    pic_hgt(a1),d1        ;y-end reached ?
  2101.     bne    rotint.f
  2102.  
  2103.     move.l    a5,a0
  2104.     add.l    #rotcol-rot,a0
  2105.     move.l    a5,a1
  2106.     add.l    #rotcol.e-rot,a1
  2107.     move.l    a1,a2
  2108. rotint.copy
  2109.     move.l    (a0)+,(a1)+
  2110.     cmp.l    a0,a2
  2111.     bne    rotint.copy
  2112.     
  2113. rotint.nopic
  2114.  
  2115. rotint.end    
  2116.     movem.l    (sp)+,d0-d7/a0-a6
  2117.     rts
  2118.  
  2119. rotlop
  2120.     movem.l    d0-d7/a0-a6,-(sp)
  2121.  
  2122.     tst.l    rotbck-rot(a5)        ;picture available ?
  2123.     beq    rotlop.end
  2124.  
  2125.     move.l    a5,a1
  2126.     add.l    #rotcoptus.s-rot,a1    ;get copperlist
  2127.     move.l    rotbuf-rot(a5),d1
  2128.     add.l    d1,a1
  2129.     
  2130.     move.l    a5,a4            ;get colortable
  2131.     add.l    #rotcol-rot,a4
  2132.  
  2133.     move.l    #32,d0            ;x centre
  2134.     lsl.l    #3,d0            ;make pixel-width
  2135.     move.l    d0,d1
  2136.     move.l    rotmag-rot(a5),d4
  2137.     muls    #rotpic_x,d4
  2138.     lsr.l    #8,d4            ;/256
  2139.     sub.l    d4,d0
  2140.     lsr.l    #1,d0            ;/2
  2141.     lsl.l    #1,d0            ;make words
  2142.     add.l    d0,a4            ;(words)
  2143.  
  2144.     move.l    #256,d0            ;y centre
  2145.     sub.l    d4,d0
  2146.     lsr.l    #1,d0            ;/2
  2147.     muls    d1,d0            ;*width
  2148.     lsl.l    #1,d0            ;words
  2149.     add.l    d0,a4            ;(words)
  2150.  
  2151.     move.l    rotmag-rot(a5),a3    ;x-magnify add
  2152.     move.l    rotrot-rot(a5),a0    ;x-rotation add
  2153.     move.l    a4,a2
  2154.  
  2155.     clr.l    d1            ;y-pos magnify
  2156.     clr.l    d0            ;y-pos rotate
  2157.  
  2158.     move.w    #rotpic_yp-1,d7
  2159. rotlop.a
  2160.     moveq.w    #0,d3            ;x-pos magnify
  2161.     moveq.w    #0,d2            ;x-pos rotate
  2162.  
  2163.     ifd    bit4aga
  2164.  
  2165.     move.w    #31-1,d6
  2166. rotlop.a1
  2167.     move.w    d2,d5
  2168.     clr.b    d5
  2169.     lsl.w    #1,d5
  2170.     move.w    d3,d4
  2171.     lsr.w    #8,d4            ;/256
  2172.     lsl.w    #1,d4            ;words
  2173.     add.w    d5,d4
  2174.     move.w    (a4,d4),d4
  2175.     move.w    d4,10(a1)        ;fill 2 copperrows
  2176.     add.w    a0,d2            ;x-rotation add
  2177.     add.w    a3,d3            ;x-magnify add
  2178.     lea    4(a1),a1
  2179.     dbra    d6,rotlop.a1
  2180.  
  2181.     add.l    #4,a1
  2182.     
  2183.     move.w    #32-1,d6
  2184. rotlop.a2
  2185.     move.w    d2,d5
  2186.     clr.b    d5
  2187.     lsl.w    #1,d5
  2188.     move.w    d3,d4
  2189.     lsr.w    #8,d4            ;/256
  2190.     lsl.w    #1,d4            ;words
  2191.     add.w    d5,d4
  2192.     move.w    (a4,d4),d4
  2193.     move.w    d4,10(a1)        ;fill 2 copperrows
  2194.     add.w    a0,d2            ;x-rotation add
  2195.     add.w    a3,d3            ;x-magnify add
  2196.     lea    4(a1),a1
  2197.     dbra    d6,rotlop.a2
  2198.  
  2199.     add.l    #4,a1
  2200.     
  2201.     move.w    #25-1,d6
  2202. rotlop.a3
  2203.     move.w    d2,d5
  2204.     clr.b    d5
  2205.     lsl.w    #1,d5
  2206.     move.w    d3,d4
  2207.     lsr.w    #8,d4            ;/256
  2208.     lsl.w    #1,d4            ;words
  2209.     add.w    d5,d4
  2210.     move.w    (a4,d4),d4
  2211.     move.w    d4,10(a1)        ;fill 2 copperrows
  2212.     add.w    a0,d2            ;x-rotation add
  2213.     add.w    a3,d3            ;x-magnify add
  2214.     lea    4(a1),a1
  2215.     dbra    d6,rotlop.a3
  2216.     endc
  2217.     
  2218.     ifnd    bit4aga
  2219.     rept    rotpic_x        ;x-repeat
  2220.  
  2221.     move.w    d2,d5
  2222.     clr.b    d5
  2223.     lsl.w    #1,d5
  2224.     move.w    d3,d4
  2225.     lsr.w    #8,d4            ;/256
  2226.     lsl.w    #1,d4            ;words
  2227.     add.w    d5,d4
  2228.     move.w    (a4,d4),d4
  2229.     move.w    d4,6(a1)        ;fill 4 copperrows
  2230.     move.w    d4,rotcoptus_l+6(a1)
  2231.     move.w    d4,2*rotcoptus_l+6(a1)
  2232.     move.w    d4,3*rotcoptus_l+6(a1)
  2233.  
  2234.     ifd    bit8
  2235.     move.w    d4,4*rotcoptus_l+6(a1)
  2236.     move.w    d4,5*rotcoptus_l+6(a1)
  2237.     move.w    d4,6*rotcoptus_l+6(a1)
  2238.     move.w    d4,7*rotcoptus_l+6(a1)
  2239.     endc
  2240.  
  2241.     add.w    a0,d2            ;x-rotation add
  2242.     add.w    a3,d3            ;x-magnify add
  2243.     lea    4(a1),a1
  2244.  
  2245.     endr                ;end x-repeat
  2246.     endc
  2247.     
  2248.     ifd    bit4aga
  2249.     add.l    #4*2,a1            ;next 2 copperlines
  2250.     endc
  2251.     ifd    bit4
  2252.     add.l    #rotcoptus_l*3+4,a1    ;next 4 copperlines
  2253.     endc
  2254.     ifd    bit8
  2255.     add.l    #rotcoptus_l*7+4,a1    ;next 8 copperlines
  2256.     endc
  2257.     
  2258.     add.l    rotrot-rot(a5),d0    ;y-rotate add
  2259.     move.l    d0,d6
  2260.     lsr.l    #8,d6            ;/256
  2261.     lsl.l    #1,d6            ;words
  2262.  
  2263.     add.l    rotmag-rot(a5),d1    ;y-magnify add
  2264.     move.l    d1,d5
  2265.     clr.b    d5
  2266.     lsl.l    #1,d5
  2267.  
  2268.     sub.l    d6,d5            ;-rotate
  2269.  
  2270.     move.l    a2,a4
  2271.     add.l    d5,a4
  2272.     dbra    d7,rotlop.a
  2273.  
  2274. rotlop.ca
  2275.     move.l    rotmagpos-rot(a5),d0
  2276.     move.l    rotmagway-rot(a5),d1
  2277.     add.l    d1,d0
  2278.     cmp.l    #rotmagtab_l,d0
  2279.     blt    rotlop.cc
  2280.     neg.l    rotmagway-rot(a5)
  2281.     bra    rotlop.ca
  2282. rotlop.cc
  2283.     cmp.l    #0,d0
  2284.     bge    rotlop.cb
  2285.     neg.l    rotmagway-rot(a5)
  2286.     bra    rotlop.ca
  2287. rotlop.cb
  2288.     move.l    d0,rotmagpos-rot(a5)
  2289.  
  2290.     lea    rotmagtab,a1
  2291.     move.w    (a1,d0),d0
  2292.     ext.l    d0
  2293.     move.l    d0,rotmag-rot(a5)
  2294.  
  2295.  
  2296. rotlop.ca2
  2297.     move.l    rotrotpos-rot(a5),d0
  2298.     move.l    rotrotway-rot(a5),d1
  2299.     add.l    d1,d0
  2300.     cmp.l    #rotrottab_l,d0
  2301.     blt    rotlop.cc2
  2302.     neg.l    rotrotway-rot(a5)
  2303.     bra    rotlop.ca2
  2304. rotlop.cc2
  2305.     cmp.l    #0,d0
  2306.     bge    rotlop.cb2
  2307.     neg.l    rotrotway-rot(a5)
  2308.     bra    rotlop.ca2
  2309. rotlop.cb2
  2310.     move.l    d0,rotrotpos-rot(a5)
  2311.  
  2312.     lea    rotrottab,a1
  2313.     move.w    (a1,d0),d0
  2314.     ext.l    d0
  2315.     move.l    d0,rotrot-rot(a5)
  2316.  
  2317.  
  2318. rotlop.end
  2319.     movem.l    (sp)+,d0-d7/a0-a6
  2320.     rts
  2321.  
  2322.     ifd    calc
  2323. rotcal                    ;calculate tunnel
  2324.     movem.l    d0-d7/a0-a6,-(sp)
  2325.  
  2326.     move.l    #32767-7000,d3        ;size
  2327. rotcal.f
  2328.     move.l    a5,a3
  2329.     add.l    #rotcol-rot,a3
  2330. rotcal.d
  2331.     move.w    #((32767-7000)/256)/1-1,d6    ;sinus pixel heigth
  2332. rotcal.c
  2333.     btst    #6,($bfe001).l
  2334.     beq    rotcal.end
  2335.     move.w    d6,$dff180
  2336.  
  2337.     lea    rotsin,a0
  2338.     move.l    a3,a1
  2339.     move.w    #rottun_wid-2,d0    ;tunnel picture width
  2340. rotcal.a
  2341.     move.w    (a1)+,d1        ;get color
  2342.     
  2343.     move.w    #4-1,d7            ;sinus pixel width
  2344. rotcal.e
  2345.  
  2346.     clr.l    d2
  2347.     move.w    (a0)+,d2        ;get sinus
  2348.     ext.l    d2
  2349.     divs.l    d3,d2
  2350.     ext.l    d2            ;x
  2351.  
  2352.     cmp.l    #rotpic_wid*4,d2    ;out of border ?
  2353.     bge    rotcal.not
  2354.     cmp.l    #-rotpic_wid*4,d2
  2355.     blt    rotcal.not
  2356.     
  2357.     move.l    a5,a4
  2358.     add.l    #rotoff-rot,a4
  2359.     move.l    d2,d5
  2360.     add.l    #rotpic_wid*4,d5
  2361.     lsl.l    #2,d5            ;longwords
  2362.     add.l    d5,a4
  2363.         
  2364.     add.l    #rotpic_wid*4,d2
  2365.  
  2366.     lea    rotpic3+pic_raw,a2
  2367.     move.l    d2,d4
  2368.     lsr.l    #3,d4
  2369.     add.l    d4,a2
  2370.     lsl.l    #3,d4
  2371.     eor.b    #7,d2
  2372.     sub.l    d4,d2
  2373.                     
  2374.     clr.l    d4
  2375.     move.w    (((rotsin_l/4)/2)*2)-2(a0),d4    ;get cos
  2376.     ext.l    d4
  2377.     divs.l    d3,d4
  2378.     ext.l    d4            ;y
  2379.  
  2380.     cmp.l    #rotpic_hgt/2,d4    ;out of border ?
  2381.     bge    rotcal.not
  2382.     cmp.l    #-rotpic_hgt/2,d4
  2383.     blt    rotcal.not
  2384.     
  2385.     move.l    d4,d5
  2386.     add.l    #rotpic_hgt/2,d5
  2387.     muls    #rotpic_wid*8*4,d5    ;longwords
  2388.     add.l    d5,a4
  2389.  
  2390.     move.l    a1,a6            ;current picture position
  2391.     sub.l    a5,a6            ;-rot
  2392.     sub.l    #rotcol-rot,a6        ;-rotcol
  2393.     move.l    a6,(a4)            ;offset table
  2394.         
  2395.     add.l    #rotpic_hgt/2,d4
  2396.     muls    #rotpic_wid*rotpic_dpt,d4
  2397.     add.l    d4,a2
  2398.     
  2399.     bset    d2,(a2)
  2400.  
  2401. rotcal.not
  2402.     dbra    d7,rotcal.e        ;next sinus-position
  2403.     
  2404.     dbra    d0,rotcal.a        ;next x-pixel
  2405.  
  2406.     sub.l    #1*1,d3
  2407.     cmp.l    #0,d3
  2408.     ble    rotcal.end
  2409.     dbra    d6,rotcal.c        ;next sinus-size
  2410.  
  2411.     add.l    #rottun_wid*2,a3    ;next tunnelpicture y-row
  2412.     move.l    a3,d0
  2413.     sub.l    #rotcol,d0
  2414.     cmp.l    #rottun_hgt*rottun_wid*2,d0
  2415.     bne    rotcal.d
  2416.     bra    rotcal.f
  2417. rotcal.end
  2418.     move.b    #1,rotcalcmode
  2419.     movem.l    (sp)+,d0-d7/a0-a6
  2420.     rts
  2421.     endc
  2422.     
  2423.  
  2424. rotvew                    ;show tunnel on screen
  2425.     movem.l    d0-d7/a0-a6,-(sp)
  2426.  
  2427.     move.l    a5,a1
  2428.     add.l    #rotcoptus.s-rot,a1    ;get copperlist
  2429.     move.l    rotbuf-rot(a5),d1
  2430.     add.l    d1,a1
  2431.     
  2432.     move.l    a5,a0
  2433.     add.l    #rotoff-rot,a0        ;tunnel data
  2434.  
  2435.     move.l    a5,a6
  2436.     add.l    #rotcol.e-rot,a6    ;tunnel picture
  2437.  
  2438. rotvew.e1
  2439.     move.l    rotpos-rot(a5),d4
  2440.     add.l    #rottun_wid*2,d4
  2441.     cmp.l    #(rottun_hgt+1)*rottun_wid*2,d4
  2442.     bne.s    rotvew.e
  2443.     clr.l    rotpos-rot(a5)
  2444.     bra.s    rotvew.e1
  2445. rotvew.e    
  2446.     move.l    d4,rotpos-rot(a5)
  2447.     sub.l    d4,a6
  2448.  
  2449.     move.w    #rotpic_yp-1,d6
  2450. rotvew.d
  2451.  
  2452.     ifd    bit4aga
  2453.  
  2454.     move.w    #31-1,d7
  2455. rotvew.a1
  2456.     move.l    (a0)+,a2        ;offset
  2457.     add.l    a6,a2            ;rotcol
  2458.     move.w    (a2),10(a1)        ;in copper
  2459.     lea    4(a1),a1
  2460.     dbra    d7,rotvew.a1
  2461.  
  2462.     add.l    #4,a1
  2463.     
  2464.     move.w    #32-1,d7
  2465. rotvew.a2
  2466.     move.l    (a0)+,a2        ;offset
  2467.     add.l    a6,a2            ;rotcol
  2468.     move.w    (a2),10(a1)        ;in copper
  2469.     lea    4(a1),a1
  2470.     dbra    d7,rotvew.a2
  2471.  
  2472.     add.l    #4,a1
  2473.     
  2474.     move.w    #25-1,d7
  2475. rotvew.a3
  2476.     move.l    (a0)+,a2        ;offset
  2477.     add.l    a6,a2            ;rotcol
  2478.     move.w    (a2),10(a1)        ;in copper
  2479.     lea    4(a1),a1
  2480.     dbra    d7,rotvew.a3
  2481.  
  2482.     add.l    #4*2,a1            ;next 2 copperlines
  2483.     endc
  2484.     
  2485.  
  2486.     ifd    kapoei
  2487.     move.w    #rotpic_wid/4-1,d5
  2488. rotvew.d2
  2489.  
  2490.     moveq.l    #0,d4            ;plane 0
  2491.     
  2492.     movem.l    (a0)+,a2-a5
  2493.  
  2494.     add.l    a6,a2
  2495.     move.b    (a2),d3
  2496.     beq.s    rotvew.l1
  2497.     bset    #31,d4
  2498. rotvew.l1
  2499.  
  2500.     add.l    a6,a3
  2501.     move.b    (a3),d3
  2502.     beq.s    rotvew.l2
  2503.     bset    #29,d4
  2504.  
  2505. rotvew.l2
  2506.     add.l    a6,a4
  2507.     move.b    (a4),d3
  2508.     beq.s    rotvew.l3
  2509.     bset    #27,d4
  2510.  
  2511. rotvew.l3
  2512.     add.l    a6,a5
  2513.     move.b    (a5),d3
  2514.     beq.s    rotvew.l4
  2515.     bset    #25,d4
  2516.  
  2517. rotvew.l4
  2518.     movem.l    (a0)+,a2-a5
  2519.  
  2520.     add.l    a6,a2
  2521.     move.b    (a2),d3
  2522.     beq.s    rotvew.l5
  2523.     bset    #23,d4
  2524. rotvew.l5
  2525.  
  2526.     add.l    a6,a3
  2527.     move.b    (a3),d3
  2528.     beq.s    rotvew.l6
  2529.     bset    #21,d4
  2530.  
  2531. rotvew.l6
  2532.     add.l    a6,a4
  2533.     move.b    (a4),d3
  2534.     beq.s    rotvew.l7
  2535.     bset    #19,d4
  2536.  
  2537. rotvew.l7
  2538.     add.l    a6,a5
  2539.     move.b    (a5),d3
  2540.     beq.s    rotvew.l8
  2541.     bset    #17,d4
  2542.  
  2543. rotvew.l8
  2544.     movem.l    (a0)+,a2-a5
  2545.  
  2546.     add.l    a6,a2
  2547.     move.b    (a2),d3
  2548.     beq.s    rotvew.l9
  2549.     bset    #15,d4
  2550. rotvew.l9
  2551.  
  2552.     add.l    a6,a3
  2553.     move.b    (a3),d3
  2554.     beq.s    rotvew.l10
  2555.     bset    #13,d4
  2556.  
  2557. rotvew.l10
  2558.     add.l    a6,a4
  2559.     move.b    (a4),d3
  2560.     beq.s    rotvew.l11
  2561.     bset    #11,d4
  2562.  
  2563. rotvew.l11
  2564.     add.l    a6,a5
  2565.     move.b    (a5),d3
  2566.     beq.s    rotvew.l12
  2567.     bset    #9,d4
  2568.  
  2569. rotvew.l12
  2570.     movem.l    (a0)+,a2-a5
  2571.  
  2572.     add.l    a6,a2
  2573.     move.b    (a2),d3
  2574.     beq.s    rotvew.l13
  2575.     bset    #7,d4
  2576. rotvew.l13
  2577.  
  2578.     add.l    a6,a3
  2579.     move.b    (a3),d3
  2580.     beq.s    rotvew.l14
  2581.     bset    #5,d4
  2582.  
  2583. rotvew.l14
  2584.     add.l    a6,a4
  2585.     move.b    (a4),d3
  2586.     beq.s    rotvew.l15
  2587.     bset    #3,d4
  2588.  
  2589. rotvew.l15
  2590.     add.l    a6,a5
  2591.     move.b    (a5),d3
  2592.     beq.s    rotvew.l16
  2593.     bset    #1,d4
  2594.  
  2595. rotvew.l16
  2596.     move.l    d4,(a1)+
  2597.  
  2598.     dbra    d5,rotvew.d2
  2599.     add.l    #(1*(rotpic_wid*rotpic_dpt))+(rotpic_wid*(rotpic_dpt-1)),a1
  2600.     endc
  2601.  
  2602.     dbra    d6,rotvew.d
  2603.     
  2604.             
  2605. rotvew.end
  2606.     movem.l    (sp)+,d0-d7/a0-a6
  2607.     rts
  2608.  
  2609.  
  2610. rotcen        dc.l    0
  2611. rotbuf        dc.l    0
  2612. rotcopbuf    dc.l    0
  2613. rotbck        dc.l    0
  2614. rotpos        dc.l    0
  2615. ;rotcopstr    dc.l    $73
  2616.  
  2617.  
  2618.     ifd    calc
  2619. rotcalcmode    dc.l    0
  2620. rotsin        ;(360 graden / rottun_wid / 4) + een beetje ; no 0 value !
  2621.  
  2622.        dc.w       1,201,402,603,804,1005,1206,1407,1608,1809,2010,2210
  2623.        dc.w       2411,2611,2812,3012,3212,3412,3612,3812,4011,4211,4410,4609
  2624.        dc.w       4808,5007,5206,5404,5603,5801,5998,6196,6393,6590,6787,6984
  2625.        dc.w       7180,7376,7572,7767,7963,8157,8352,8546,8740,8934,9127,9320
  2626.        dc.w       9513,9705,9897,10088,10279,10470,10661,10850,11040,11229,11418,11606
  2627.        dc.w       11794,11981,12168,12355,12541,12726,12911,13096,13280,13463,13647,13829
  2628.        dc.w       14011,14193,14374,14554,14734,14913,15092,15270,15448,15625,15801,15977
  2629.        dc.w       16152,16327,16501,16674,16847,17019,17191,17362,17532,17701,17870,18039
  2630.        dc.w       18206,18373,18539,18705,18869,19033,19197,19359,19521,19682,19843,20002
  2631.        dc.w       20161,20319,20477,20633,20789,20944,21098,21252,21404,21556,21707,21858
  2632.        dc.w       22007,22155,22303,22450,22596,22741,22886,23029,23172,23313,23454,23594
  2633.        dc.w       23733,23872,24009,24145,24281,24415,24549,24682,24813,24944,25074,25203
  2634.        dc.w       25331,25458,25584,25710,25834,25957,26079,26200,26321,26440,26558,26675
  2635.        dc.w       26792,26907,27021,27134,27247,27358,27468,27577,27685,27792,27898,28003
  2636.        dc.w       28107,28210,28312,28412,28512,28611,28708,28804,28900,28994,29087,29179
  2637.        dc.w       29270,29360,29449,29536,29623,29708,29792,29876,29958,30038,30118,30197
  2638.        dc.w       30274,30351,30426,30500,30573,30645,30715,30785,30853,30920,30986,31051
  2639.        dc.w       31115,31177,31238,31298,31357,31415,31472,31527,31581,31634,31686,31737
  2640.        dc.w       31786,31834,31881,31927,31972,32015,32058,32099,32138,32177,32214,32250
  2641.        dc.w       32285,32319,32352,32383,32413,32442,32470,32496,32521,32545,32568,32589
  2642.        dc.w       32610,32629,32647,32663,32679,32693,32706,32717,32728,32737,32745,32752
  2643.        dc.w       32757,32762,32765,32766,32767,32766,32764,32761,32757,32751,32745,32737
  2644.        dc.w       32727,32717,32705,32692,32678,32662,32646,32628,32609,32588,32567,32544
  2645.        dc.w       32520,32495,32468,32440,32411,32381,32350,32317,32284,32249,32212,32175
  2646.        dc.w       32136,32096,32055,32013,31969,31925,31879,31832,31783,31734,31683,31631
  2647.        dc.w       31578,31524,31469,31412,31354,31295,31235,31174,31111,31047,30983,30916
  2648.        dc.w       30849,30781,30711,30641,30569,30496,30422,30347,30270,30193,30114,30034
  2649.        dc.w       29953,29871,29788,29703,29618,29531,29444,29355,29265,29174,29082,28989
  2650.        dc.w       28894,28799,28703,28605,28506,28407,28306,28204,28101,27997,27892,27786
  2651.        dc.w       27679,27571,27462,27352,27241,27128,27015,26901,26785,26669,26552,26433
  2652.        dc.w       26314,26194,26072,25950,25827,25703,25577,25451,25324,25196,25067,24937
  2653.        dc.w       24806,24674,24542,24408,24273,24138,24001,23864,23726,23587,23447,23306
  2654.        dc.w       23164,23021,22878,22733,22588,22442,22295,22147,21999,21849,21699,21548
  2655.        dc.w       21396,21243,21090,20936,20781,20625,20468,20311,20153,19994,19834,19673
  2656.        dc.w       19512,19350,19188,19024,18860,18696,18530,18364,18197,18029,17861,17692
  2657.        dc.w       17523,17353,17182,17010,16838,16665,16492,16318,16143,15968,15792,15615
  2658.        dc.w       15438,15261,15082,14904,14724,14544,14364,14183,14001,13819,13637,13454
  2659.        dc.w       13270,13086,12901,12716,12531,12345,12158,11971,11784,11596,11408,11219
  2660.        dc.w       11030,10840,10650,10460,10269,10078,9887,9695,9503,9310,9117,8924
  2661.        dc.w       8730,8536,8342,8147,7952,7757,7562,7366,7170,6973,6777,6580
  2662.        dc.w       6383,6185,5988,5790,5592,5394,5195,4997,4798,4599,4400,4200
  2663.        dc.w       4001,3801,3602,3402,3202,3001,2801,2601,2400,2200,1999,1798
  2664.        dc.w       1597,1397,1196,995,794,593,392,191,-10,-211,-412,-613
  2665.        dc.w       -814,-1015,-1216,-1417,-1618,-1819,-2019,-2220,-2421,-2621,-2822,-3022
  2666.        dc.w       -3222,-3422,-3622,-3822,-4021,-4221,-4420,-4619,-4818,-5017,-5216,-5414
  2667.        dc.w       -5612,-5810,-6008,-6206,-6403,-6600,-6797,-6993,-7190,-7386,-7581,-7777
  2668.        dc.w       -7972,-8167,-8362,-8556,-8750,-8943,-9137,-9330,-9522,-9714,-9906,-10098
  2669.        dc.w       -10289,-10479,-10670,-10860,-11049,-11238,-11427,-11615,-11803,-11990,-12177,-12364
  2670.        dc.w       -12550,-12735,-12920,-13105,-13289,-13472,-13655,-13838,-14020,-14201,-14382,-14563
  2671.        dc.w       -14742,-14922,-15101,-15279,-15456,-15633,-15810,-15985,-16161,-16335,-16509,-16683
  2672.        dc.w       -16855,-17028,-17199,-17370,-17540,-17710,-17878,-18047,-18214,-18381,-18547,-18712
  2673.        dc.w       -18877,-19041,-19204,-19367,-19529,-19690,-19850,-20010,-20169,-20327,-20484,-20641
  2674.        dc.w       -20796,-20951,-21105,-21259,-21412,-21563,-21714,-21864,-22014,-22162,-22310,-22457
  2675.        dc.w       -22603,-22748,-22892,-23036,-23178,-23320,-23461,-23601,-23740,-23878,-24015,-24151
  2676.        dc.w       -24287,-24421,-24555,-24688,-24819,-24950,-25080,-25209,-25337,-25464,-25590,-25715
  2677.        dc.w       -25839,-25962,-26085,-26206,-26326,-26445,-26563,-26681,-26797,-26912,-27026,-27139
  2678.        dc.w       -27252,-27363,-27473,-27582,-27690,-27797,-27903,-28008,-28112,-28214,-28316,-28417
  2679.        dc.w       -28516,-28615,-28712,-28809,-28904,-28998,-29091,-29183,-29274,-29364,-29452,-29540
  2680.        dc.w       -29626,-29712,-29796,-29879,-29961,-30042,-30122,-30200,-30278,-30354,-30429,-30503
  2681.        dc.w       -30576,-30648,-30718,-30788,-30856,-30923,-30989,-31054,-31117,-31180,-31241,-31301
  2682.        dc.w       -31360,-31417,-31474,-31529,-31583,-31636,-31688,-31739,-31788,-31836,-31883,-31929
  2683.        dc.w       -31973,-32017,-32059,-32100,-32140,-32178,-32216,-32252,-32287,-32320,-32353,-32384
  2684.        dc.w       -32414,-32443,-32470,-32497,-32522,-32546,-32568,-32590,-32610,-32629,-32647,-32663
  2685.        dc.w       -32679,-32693,-32706,-32717,-32728,-32737,-32745,-32752,-32757,-32761,-32764,-32766
  2686.        dc.w       -32766,-32766,-32764,-32761,-32756,-32751,-32744,-32736,-32726,-32716,-32704,-32691
  2687.        dc.w       -32677,-32661,-32644,-32626,-32607,-32587,-32565,-32542,-32518,-32493,-32466,-32439
  2688.        dc.w       -32410,-32379,-32348,-32315,-32281,-32246,-32210,-32173,-32134,-32094,-32053,-32010
  2689.        dc.w       -31967,-31922,-31876,-31829,-31781,-31731,-31680,-31628,-31575,-31521,-31466,-31409
  2690.        dc.w       -31351,-31292,-31232,-31170,-31108,-31044,-30979,-30913,-30846,-30777,-30708,-30637
  2691.        dc.w       -30565,-30492,-30418,-30343,-30266,-30188,-30110,-30030,-29949,-29867,-29783,-29699
  2692.        dc.w       -29614,-29527,-29439,-29350,-29260,-29169,-29077,-28984,-28890,-28794,-28698,-28600
  2693.        dc.w       -28502,-28402,-28301,-28199,-28096,-27992,-27887,-27781,-27674,-27566,-27457,-27346
  2694.        dc.w       -27235,-27123,-27009,-26895,-26780,-26663,-26546,-26428,-26308,-26188,-26066,-25944
  2695.        dc.w       -25821,-25697,-25571,-25445,-25318,-25190,-25061,-24931,-24800,-24668,-24535,-24401
  2696.        dc.w       -24267,-24131,-23995,-23857,-23719,-23580,-23440,-23299,-23157,-23014,-22871,-22726
  2697.        dc.w       -22581,-22435,-22288,-22140,-21992,-21842,-21692,-21541,-21389,-21236,-21083,-20928
  2698.        dc.w       -20773,-20617,-20461,-20303,-20145,-19986,-19826,-19666,-19505,-19343,-19180,-19017
  2699.        dc.w       -18853,-18688,-18522,-18356,-18189,-18022,-17853,-17684,-17515,-17344,-17174,-17002
  2700.        dc.w       -16830,-16657,-16483,-16309,-16135,-15959,-15783,-15607,-15430,-15252,-15074,-14895
  2701.        dc.w       -14716,-14536,-14355,-14174,-13993,-13811,-13628,-13445,-13261,-13077,-12893,-12708
  2702.        dc.w       -12522,-12336,-12149,-11962,-11775,-11587,-11399,-11210,-11021,-10831,-10641,-10451
  2703.        dc.w       -10260,-10069,-9878,-9686,-9493,-9301,-9108,-8915,-8721,-8527,-8333,-8138
  2704.        dc.w       -7943,-7748,-7552,-7357,-7160,-6964,-6767,-6571,-6374,-6176,-5979,-5781
  2705.        dc.w       -5583,-5384,-5186,-4987,-4789,-4590,-4390,-4191,-3992,-3792,-3592,-3392
  2706.        dc.w       -3192,-2992,-2792,-2591,-2391,-2190,-1990,-1789,-1588,-1387,-1186,-985
  2707.        dc.w       -784,-583,-382,-181
  2708. rotsin.e
  2709.  
  2710.  
  2711.        dc.w       1,201,402,603,804,1005,1206,1407,1608,1809,2010,2210
  2712.        dc.w       2411,2611,2812,3012,3212,3412,3612,3812,4011,4211,4410,4609
  2713.        dc.w       4808,5007,5206,5404,5603,5801,5998,6196,6393,6590,6787,6984
  2714.        dc.w       7180,7376,7572,7767,7963,8157,8352,8546,8740,8934,9127,9320
  2715.        dc.w       9513,9705,9897,10088,10279,10470,10661,10850,11040,11229,11418,11606
  2716.        dc.w       11794,11981,12168,12355,12541,12726,12911,13096,13280,13463,13647,13829
  2717.        dc.w       14011,14193,14374,14554,14734,14913,15092,15270,15448,15625,15801,15977
  2718.        dc.w       16152,16327,16501,16674,16847,17019,17191,17362,17532,17701,17870,18039
  2719.        dc.w       18206,18373,18539,18705,18869,19033,19197,19359,19521,19682,19843,20002
  2720.        dc.w       20161,20319,20477,20633,20789,20944,21098,21252,21404,21556,21707,21858
  2721.        dc.w       22007,22155,22303,22450,22596,22741,22886,23029,23172,23313,23454,23594
  2722.        dc.w       23733,23872,24009,24145,24281,24415,24549,24682,24813,24944,25074,25203
  2723.        dc.w       25331,25458,25584,25710,25834,25957,26079,26200,26321,26440,26558,26675
  2724.        dc.w       26792,26907,27021,27134,27247,27358,27468,27577,27685,27792,27898,28003
  2725.        dc.w       28107,28210,28312,28412,28512,28611,28708,28804,28900,28994,29087,29179
  2726.        dc.w       29270,29360,29449,29536,29623,29708,29792,29876,29958,30038,30118,30197
  2727.        dc.w       30274,30351,30426,30500,30573,30645,30715,30785,30853,30920,30986,31051
  2728.        dc.w       31115,31177,31238,31298,31357,31415,31472,31527,31581,31634,31686,31737
  2729.        dc.w       31786,31834,31881,31927,31972,32015,32058,32099,32138,32177,32214,32250
  2730.        dc.w       32285,32319,32352,32383,32413,32442,32470,32496,32521,32545,32568,32589
  2731.        dc.w       32610,32629,32647,32663,32679,32693,32706,32717,32728,32737,32745,32752
  2732.        dc.w       32757,32762,32765,32766,32767,32766,32764,32761,32757,32751,32745,32737
  2733.        dc.w       32727,32717,32705,32692,32678,32662,32646,32628,32609,32588,32567,32544
  2734.        dc.w       32520,32495,32468,32440,32411,32381,32350,32317,32284,32249,32212,32175
  2735.        dc.w       32136,32096,32055,32013,31969,31925,31879,31832,31783,31734,31683,31631
  2736.        dc.w       31578,31524,31469,31412,31354,31295,31235,31174,31111,31047,30983,30916
  2737.  
  2738.  
  2739. rotsin_l    equ    rotsin.e-rotsin
  2740.  
  2741.         ifd    calc
  2742.         cnop    0,8
  2743. rotpic3
  2744.         ifnd    ocs
  2745.         dc.l    'PICT'
  2746.         dc.w    rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
  2747.         ds.b    8*4
  2748.         ds.b    16
  2749.         dc.w    32-1
  2750.         dc.w    $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2751.         dc.w    $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2752.         dc.w    $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2753.         dc.w    $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
  2754.         ds.l    256-32
  2755.         ds.b    rotpic_wid*rotpic_hgt*rotpic_dpt
  2756.         endc    
  2757.         ifd    ocs
  2758.         dc.l    'PICT'
  2759.         dc.w    rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
  2760.         ds.b    4*4
  2761.         dc.w    32-1
  2762.         dc.w    $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2763.         dc.w    $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2764.         dc.w    $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2765.         dc.w    $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
  2766.         ds.w    256-32
  2767.         ds.b    rotpic_wid*rotpic_hgt*rotpic_dpt
  2768.         endc
  2769.         endc
  2770.         endc
  2771.  
  2772. rotoff
  2773.         ifd    calc
  2774.         ds.l    rotpic_wid*8*rotpic_hgt
  2775.         endc
  2776.         ifnd    calc
  2777.         incbin    'videotracker:binaga/tun2.bin'
  2778.         cnop    0,2
  2779.         endc
  2780. rotoff.e
  2781. ;rotoff_l    equ    rotoff.e-rotoff
  2782.  
  2783. ;rotcol        ds.b    rottun_hgt*rottun_wid
  2784. ;rotcol.e
  2785. ;        ds.b    rottun_hgt*rottun_wid
  2786. ;rotcol_l    equ    rotcol.e-rotcol
  2787.  
  2788.         cnop    0,8
  2789.         
  2790. ;rotbuf        dc.l    0
  2791. ;rotbck        dc.l    0
  2792. rotpicvew    dc.l    0
  2793. rotmag        dc.l    0
  2794. rotmagpos    dc.l    0
  2795. rotmagway    dc.l    4
  2796. rotrot        dc.l    0
  2797. rotrotpos    dc.l    0
  2798. rotrotway    dc.l    18
  2799.  
  2800. rotcopstr    dc.l    cop_str
  2801.         
  2802.  
  2803. rotmagtab
  2804.     ifd    bit4aga
  2805. ;       dc.w       1100,1081,1062,1042,1023,1004,985,966,947,928,909,890
  2806. ;       dc.w       871,853,834,815,797,778,760,742,724,706,688,670
  2807. ;       dc.w       653,635,618,601,584,567,550,533,517,501,485,469
  2808. ;       dc.w       453,438,423,408,393
  2809.        dc.w    378,364,350,336,322,309,296
  2810.        dc.w       283,270,257,245,233,222,210,199,188,177,167,157
  2811.        dc.w       147,138,129,120,111,103,95,87,80,73,66,60
  2812.        dc.w       54,48,43,37,33,28,24,20,17,14,11,8
  2813.        dc.w       6,4,3,2,1,0,0
  2814.        dc.w       0,0,0,0,-1,-2,-2,-4,-5,-6,-8,-9
  2815.        dc.w       -11,-13,-16,-18,-20,-23,-26,-29,-32,-36,-39,-43
  2816.        dc.w       -46,-50,-55,-59,-63,-68,-73,-77,-82,-88,-93,-99
  2817.        dc.w       -104,-110,-116,-122,-128,-135,-141,-148,-155,-162,-169,-176
  2818.        dc.w       -183,-191,-198,-206,-214,-222,-230,-239,-247,-256,-264,-273
  2819.        dc.w       -282,-291,-300,-310,-319,-328,-338,-348,-358,-368,-378,-388
  2820.        dc.w       -398,-409,-419,-430,-441,-451
  2821.        dc.w    -462,-473,-484,-496
  2822. ;       dc.w    -507,-518
  2823. ;       dc.w       -530,-541,-553,-565,-576,-588,-600,-612,-624,-636,-649,-661
  2824. ;       dc.w       -673,-686,-698,-711,-723,-736,-749,-761,-774,-787,-800,-813
  2825. ;       dc.w       -826,-839,-852,-865,-878,-891,-905,-918,-931,-945,-958,-971
  2826. ;       dc.w       -985,-998,-1011,-1025,-1038,-1052,-1065,-1078,-1092
  2827.     endc
  2828.     
  2829.     ifnd    bit4aga
  2830.        dc.w       1100,1081,1062,1042,1023,1004,985,966,947,928,909,890
  2831.        dc.w       871,853,834,815,797,778,760,742,724,706,688,670
  2832.        dc.w       653,635,618,601,584,567,550,533,517,501,485,469
  2833.        dc.w       453,438,423,408,393,378,364,350,336,322,309,296
  2834.        dc.w       283,270,257,245,233,222,210,199,188,177,167,157
  2835.        dc.w       147,138,129,120,111,103,95,87,80,73,66,60
  2836.        dc.w       54,48,43,37,33,28,24,20,17,14,11,8
  2837.        dc.w       6,4,3,2,1,0,0
  2838.        dc.w       0,0,0,0,-1,-2,-2,-4,-5,-6,-8,-9
  2839.        dc.w       -11,-13,-16,-18,-20,-23,-26,-29,-32,-36,-39,-43
  2840.        dc.w       -46,-50,-55,-59,-63,-68,-73,-77,-82,-88,-93,-99
  2841.        dc.w       -104,-110,-116,-122,-128,-135,-141,-148,-155,-162,-169,-176
  2842.        dc.w       -183,-191,-198,-206,-214,-222,-230,-239,-247,-256,-264,-273
  2843.        dc.w       -282,-291,-300,-310,-319,-328,-338,-348,-358,-368,-378,-388
  2844.        dc.w       -398,-409,-419,-430,-441,-451,-462,-473,-484,-496,-507,-518
  2845.        dc.w       -530,-541,-553,-565,-576,-588,-600,-612,-624,-636,-649,-661
  2846.        dc.w       -673,-686,-698,-711,-723,-736,-749,-761,-774,-787,-800,-813
  2847.        dc.w       -826,-839,-852,-865,-878,-891,-905,-918,-931,-945,-958,-971
  2848.        dc.w       -985,-998,-1011,-1025,-1038,-1052,-1065,-1078,-1092
  2849.     endc
  2850.     
  2851. rotmagtab.e
  2852. rotmagtab_l    equ    rotmagtab.e-rotmagtab
  2853.  
  2854. rotrottab
  2855.        dc.w       128,128,128,128,128,128,128,128,127,127,127,127
  2856.        dc.w       127,126,126,126,126,125,125,125,124,124,123,123
  2857.        dc.w       123,122,122,121,121,120,119,119,118,118,117,116
  2858.        dc.w       116,115,114,114,113,112,112,111,110,109,108,107
  2859.        dc.w       107,106,105,104,103,102,101,100,99,98,97,96
  2860.        dc.w       95,94,93,92,91,90,89,87,86,85,84,83
  2861.        dc.w       82,80,79,78,77,75,74,73,72,70,69,68
  2862.        dc.w       66,65,64,62,61,60,58,57,55,54,52,51
  2863.        dc.w       50,48,47,45,44,42,41,39,38,36,35,33
  2864.        dc.w       32,30,29,27,26,24,23,21,20,18,16,15
  2865.        dc.w       13,12,10,9,7,6,4,2,1,0,-2,-3
  2866.        dc.w       -5,-6,-8,-10,-11,-13,-14,-16,-17,-19,-20,-22
  2867.        dc.w       -23,-25,-27,-28,-30,-31,-33,-34,-36,-37,-39,-40
  2868.        dc.w       -42,-43,-45,-46,-47,-49,-50,-52,-53,-55,-56,-57
  2869.        dc.w       -59,-60,-62,-63,-64,-66,-67,-68,-70,-71,-72,-73
  2870.        dc.w       -75,-76,-77,-78,-80,-81,-82,-83,-84,-86,-87,-88
  2871.        dc.w       -89,-90,-91,-92,-93,-94,-96,-97,-98,-99,-100,-101
  2872.        dc.w       -101,-102,-103,-104,-105,-106,-107,-108,-109,-109,-110,-111
  2873.        dc.w       -112,-112,-113,-114,-115,-115,-116,-117,-117,-118,-118,-119
  2874.        dc.w       -119,-120,-121,-121,-122,-122,-122,-123,-123,-124,-124,-124
  2875.        dc.w       -125,-125,-125,-126,-126,-126,-126,-127,-127,-127,-127,-127
  2876.        dc.w       -127,-127,-127,-127,-127,-127
  2877.  
  2878. rotrottab.e
  2879. rotrottab_l    equ    rotrottab.e-rotrottab
  2880.  
  2881.  
  2882.     cnop    0,8
  2883.     
  2884.     ifd    bit8
  2885.     ifnd    ocs
  2886. rotpicemp
  2887.     dc.l    'PICT'
  2888.     dc.w    16,16,1,1,0
  2889.     ds.b    8*4
  2890.     dc.l    0
  2891.     ds.b    12
  2892.     dc.w    0
  2893.     ds.l    256
  2894.     ds.b    16*16*1
  2895.     endc
  2896.     ifd    ocs
  2897. rotpicemp
  2898.     dc.l    'PICT'
  2899.     dc.w    16,16,1,1,0
  2900.     ds.b    4*4
  2901.     dc.w    0
  2902.     ds.w    256
  2903.     ds.b    16*16*1
  2904.     endc
  2905.     endc
  2906.     
  2907.  
  2908.     cnop    0,8
  2909. rotpic
  2910.     ifd    bit4aga
  2911.     incbin    'w:binaga/copmag2.pic'
  2912.     endc
  2913.  
  2914.     ifd    bit4
  2915.     ifd    ocs
  2916.     incbin    'w:bin/copmag.bin'
  2917.     endc
  2918.     ifnd    ocs
  2919.     incbin    'w:binaga/copmag.pic'
  2920.     endc
  2921.     endc
  2922.  
  2923.     cnop    0,2
  2924. rotcop1
  2925. rotcprjmp
  2926.     dc.w    $80,0,$82,0
  2927. rotcoptus.s
  2928.  
  2929.     ifd    bit4aga
  2930.     dc.w    $0001,$fffe
  2931.     dc.w    $106,$8000
  2932.     dc.w    $182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  2933.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  2934.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  2935.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  2936.     dc.w    $106,$a000
  2937.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  2938.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  2939.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  2940.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  2941.     dc.w    $106,$c000
  2942.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  2943.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  2944.     dc.w    $1a0,0
  2945.     dc.w    $1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0,$1b0,0
  2946. ;    dc.w    $00c9,$fffe
  2947.     endc
  2948.  
  2949.     ifd    bit4
  2950.     dc.w    $00c9,$fffe
  2951.     dc.w    $1be,$000,$1bc,$000,$1ba,$000,$1b8,$000
  2952.     dc.w    $1b6,$000,$1b4,$000,$1b2,$000,$1b0,$000
  2953.     dc.w    $1ae,$000,$1ac,$000,$1aa,$000,$1a8,$000
  2954.     dc.w    $1a6,$000,$1a4,$000,$1a2,$000,$1a0,$000
  2955.     dc.w    $19e,$000,$19c,$000,$19a,$000,$198,$000
  2956.     dc.w    $196,$000,$194,$000,$192,$000,$190,$000
  2957.     dc.w    $18e,$000,$18c,$000,$18a,$000,$188,$000
  2958.     dc.w    $186,$000,$184,$000,$182,$000
  2959.     dc.w    $1be,$000,$1bc,$000,$1ba,$000,$1b8,$000
  2960.     dc.w    $1b6,$000,$1b4,$000,$1b2,$000,$1b0,$000
  2961.     dc.w    $1ae,$000,$1ac,$000,$1aa,$000,$1a8,$000
  2962.     dc.w    $1a6,$000,$1a4,$000,$1a2,$000,$1a0,$000
  2963.     dc.w    $19e,$000
  2964.     endc
  2965.  
  2966.     ifd    bit8
  2967.     dc.w    $0029,$fffe
  2968.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2969.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2970.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2971.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2972.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2973.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2974.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2975.     dc.w    $180,$000,$180,$000,$180,$000
  2976.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2977.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2978.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2979.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  2980.     dc.w    $180,$000
  2981.     endc
  2982.  
  2983. rotcoptus.e
  2984.  
  2985.     ifd    bit4aga
  2986.  
  2987.     dc.w    $0001,$fffe
  2988.     dc.w    $106,$0000
  2989.     dc.w    $182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  2990.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  2991.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  2992.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  2993.     dc.w    $106,$2000
  2994.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  2995.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  2996.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  2997.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  2998.     dc.w    $106,$4000
  2999.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3000.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3001.     dc.w    $1a0,0
  3002.     dc.w    $1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0,$1b0,0
  3003. ;    dc.w    $00c9,$fffe
  3004.  
  3005.     rept    rotpic_y/8-1
  3006.     dc.w    $0001,$fffe
  3007.     dc.w    $106,$8000
  3008.     dc.w    $182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3009.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3010.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3011.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3012.     dc.w    $106,$a000
  3013.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3014.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3015.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3016.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3017.     dc.w    $106,$c000
  3018.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3019.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3020.     dc.w    $1a0,0
  3021.     dc.w    $1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0,$1b0,0
  3022. ;    dc.w    $00c9,$fffe
  3023.  
  3024.     dc.w    $0001,$fffe
  3025.     dc.w    $106,$0000
  3026.     dc.w    $182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3027.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3028.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3029.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3030.     dc.w    $106,$2000
  3031.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3032.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3033.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3034.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3035.     dc.w    $106,$4000
  3036.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3037.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3038.     dc.w    $1a0,0
  3039.     dc.w    $1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0,$1b0,0
  3040. ;    dc.w    $00c9,$fffe
  3041.  
  3042.     endr
  3043.     endc
  3044.  
  3045.     ifd    bit4
  3046.     rept    rotpic_y-1
  3047.     dc.w    $00c9,$fffe
  3048.     dc.w    $1be,$000,$1bc,$000,$1ba,$000,$1b8,$000
  3049.     dc.w    $1b6,$000,$1b4,$000,$1b2,$000,$1b0,$000
  3050.     dc.w    $1ae,$000,$1ac,$000,$1aa,$000,$1a8,$000
  3051.     dc.w    $1a6,$000,$1a4,$000,$1a2,$000,$1a0,$000
  3052.     dc.w    $19e,$000,$19c,$000,$19a,$000,$198,$000
  3053.     dc.w    $196,$000,$194,$000,$192,$000,$190,$000
  3054.     dc.w    $18e,$000,$18c,$000,$18a,$000,$188,$000
  3055.     dc.w    $186,$000,$184,$000,$182,$000
  3056.     dc.w    $1be,$000,$1bc,$000,$1ba,$000,$1b8,$000
  3057.     dc.w    $1b6,$000,$1b4,$000,$1b2,$000,$1b0,$000
  3058.     dc.w    $1ae,$000,$1ac,$000,$1aa,$000,$1a8,$000
  3059.     dc.w    $1a6,$000,$1a4,$000,$1a2,$000,$1a0,$000
  3060.     dc.w    $19e,$000
  3061.     endr
  3062.     endc
  3063.  
  3064.     ifd    bit8
  3065.     rept    rotpic_y-1
  3066.     dc.w    $0029,$fffe
  3067.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3068.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3069.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3070.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3071.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3072.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3073.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3074.     dc.w    $180,$000,$180,$000,$180,$000
  3075.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3076.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3077.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3078.     dc.w    $180,$000,$180,$000,$180,$000,$180,$000
  3079.     dc.w    $180,$000
  3080.     endr
  3081.     endc
  3082.  
  3083.     dc.w    $180,$000,$88,0
  3084.  
  3085. rotcoptus_l    equ    rotcoptus.e-rotcoptus.s
  3086.  
  3087.     ifd    bit4aga
  3088. rotcprbck1        equ    (rotcoptus_l*((rotpic_y-124)/4))+8
  3089. rotcprbck1ntsc        equ    (rotcoptus_l*((rotpic_y-172)/4))+8
  3090. rotcprend1ntsc        equ    (rotcoptus_l*((rotpic_y-60)/4))+8
  3091.     endc
  3092.     
  3093.     ifd    bit8
  3094. rotcprbck1        equ    (rotcoptus_l*(rotpic_y-124))+8
  3095. rotcprbck1ntsc        equ    (rotcoptus_l*(rotpic_y-180))+8
  3096. rotcprend1ntsc        equ    (rotcoptus_l*(rotpic_y-60))+8
  3097.     endc
  3098.     
  3099.     ifd    bit4
  3100. rotcprbck1        equ    (rotcoptus_l*(rotpic_y-78))+8
  3101. rotcprbck1ntsc        equ    (rotcoptus_l*(rotpic_y-106))+8
  3102.     endc
  3103.  
  3104. ;    cnop    0,2
  3105.  
  3106. rotcop2
  3107.     ds.b    rotcop2-rotcop1
  3108. rotcop2.e
  3109.  
  3110. rotcop_l    equ    rotcop2-rotcop1
  3111.  
  3112.  
  3113. rotcol        ds.w    256*256
  3114. rotcol.e
  3115.         ds.w    256*256
  3116. rotcol_l    equ    rotcol.e-rotcol
  3117.  
  3118.  
  3119. rot.e
  3120.  
  3121. ;**********************************************************************
  3122.  
  3123.     ifd    rout
  3124.     cnop    0,8
  3125. rotsrc
  3126.     ifnd    ocs
  3127.     incbin    'videotracker:effectaga/borisgirl_ham.pic'
  3128. ;    incbin    'videotracker:effectaga/diamondrgb_ham.bru'
  3129.     endc
  3130.     ifd    ocs
  3131.     incbin    'videotracker:effect/diamondrgb_ham.bru'
  3132.     endc
  3133.     endc
  3134.